在类方法中创建并返回对象的副本
本文关键字:对象 副本 返回 类方法 创建 | 更新日期: 2023-09-27 17:55:29
我有一个名为movie的类。Movie 具有 movieYear 字符串属性和 movieYearInt int 属性。我想要一个类方法,我可以在其中发送电影对象并获取一个对象,该对象已获取 movieYear 字符串属性并将其值复制到 movieYearInt。稍后我将转换对象的更多属性。
这是电影类
public class movie
{
public string movieName { get; set; }
public string movieYear { get; set; }
public int movieYearInt { get; set; }
public movie convertFilm(movie m)
{
m.movieYearInt = int.Parse(m.movieYear);
return m;
}
}
这就是我想在我的表单中检索对象的方式
movie m = new movie();
m.movieYear = cmbMovieYear.ToString();
movie newMovie = m.convertFilm(m);
我得到的错误是:输入字符串格式不正确我做错了什么?
编辑-这是电影年组合框
List<int> allYears = new List<int>();
allYears.AddRange(Enumerable.Range(1900, 113));
cmbMovieYear.DataSource = allYears;
编辑-
m.movieYear = cmbMovieYear.SelectedItem.ToString();
这就是解决方案。
您是否考虑过将 movieYearInt 属性的 getter 修改为类似的东西,而不是返回转换后的对象?
public int movieYearInt
{
get
{
// add some validation, and consider using System.Int32.TryParse
return System.Int32.Parse(movieYear);
}
}
public class movie: ICloneable
{
public string movieName { get; set; }
public string movieYear { get; set; }
public int movieYearInt { get { return int.Parse(movieYear) set {movieYear = value.ToString()}}
public object Clone()
{
return new movie() {movieName = this.movieName, movieYear = this.movieYear};
}
}
var m = new movie();
m.movieYear = "2001";
var newMovie = (movie) m.Clone();