在类方法中创建并返回对象的副本

本文关键字:对象 副本 返回 类方法 创建 | 更新日期: 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();