2015-05-14 97 views
0

我想在C#中學習List <>。我製作了一個測試程序,它將三個文本框的結果輸入到多行文本框中,然後將它們放入列表中(稍後將列表保存到文件中)。關於C#中的List <>聲明#

這裏是我的類聲明:

public class Film 
    { 
     public Film (string Num, string Title, string Categ) 
     { 
      this.Numero = Num; 
      this.Titre = Title; 
      this.Categorie = Categ; 
     } 

     public string Numero; 
     public string Titre; 
     public string Categorie; 

    } 

現在我實例名單:

List<Film> ListeFilms = new List<Film>(); 

,這裏是我的事件:

private void btSaveMovie_Click(object sender, EventArgs e) 
    { 
     var MyMovie = new Film(txtNum.Text, txtTitre.Text, cbCateg.Text); 

     ListeFilms.Add(MyMovie); 
     foreach (Film x in ListeFilms) 
     { 
      txtAffichage.AppendText(x.ToString()); 
     } 
    } 

現在,當我運行,所有的寫在文本框中的是:

test_1.Form1+Film 

我做錯了什麼?

回答

3

您必須重寫Film類聲明中的ToString()方法。否則它將返回類型名稱。

例子:

public class Film 
{ 
    public Film(string Num, string Title, string Categ) 
    { 
     this.Numero = Num; 
     this.Titre = Title; 
     this.Categorie = Categ; 
    } 

    public string Numero; 
    public string Titre; 
    public string Categorie; 

    public override string ToString() 
    { 
     return Numero.ToString() + " " + Titre.ToString() + " " + Categorie.ToString(); 
    } 
} 
1

你只需要串聯三個字段到AppendText通過功能:

private void btSaveMovie_Click(object sender, EventArgs e) 
{ 
    var MyMovie = new Film(txtNum.Text, txtTitre.Text, cbCateg.Text); 

    ListeFilms.Add(MyMovie); 
    foreach (Film x in ListeFilms) 
    { 
     txtAffichage.AppendText(x.Numero + " - " + x.Titre + "- " + x.Categorie)); 
    } 
} 
+0

謝謝你們!它現在有效! – tharkold