0

映画というクラスがあります。Movieには、movieYear文字列プロパティとmovieYearIntintプロパティがあります。movieオブジェクトを送信し、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);

私が得るエラーは次のとおりです:入力文字列が正しい形式ではありませんでした何が間違っていますか?

編集-これはmovieYearコンボボックスです

List<int> allYears = new List<int>();
allYears.AddRange(Enumerable.Range(1900, 113));
cmbMovieYear.DataSource = allYears;

編集-

m.movieYear = cmbMovieYear.SelectedItem.ToString();

これが解決策でした。

4

2 に答える 2

0

変換されたオブジェクトを返す代わりに、movieYearIntプロパティのゲッターを次のようなものに変更することを検討しましたか?

  public int movieYearInt 
  {
    get
    {
      // add some validation, and consider using System.Int32.TryParse
      return System.Int32.Parse(movieYear);
    }      
  }
于 2013-01-22T13:05:05.370 に答える
0
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();
于 2013-01-22T13:15:40.160 に答える