2011-04-25 32 views
1
private List<Movie> movies = new List<Movie>(); 
    Movie _movie; 

    _movie = new Movie(); 
    movie.Title = "test2"; 
    _movie.Year = "1992"; 
    movies.Add(_movie); 

    _movie = new Movie(); 
    _movie.Title = "test2"; 
    _movie.Year = "1992"; 
    movies.Add(_movie); 

    _movie = new Movie(); 
    _movie.Title = "test3"; 
    _movie.Year = "1992"; 
    movies.Add(_movie); 

    label8.Text = movies[0].toString(); 
    label9.Text = movies[1].toString(); 
    label10.Text = movies[2].toString(); 

好的,所以我正在製作一個小程序來幫助我和我的朋友/ girldfriend選擇一部電影,當我們無聊時。明顯的功能包括將新電影添加到列表中。我在那裏添加了用於測試的標籤,因爲每次我將電影添加到列表中時,最後一個將覆蓋所有其他標籤。最後添加的列表元素重複其他

我看了幾個問題/線程,我可以找到關於這個問題,我看不到如何在地球上的所有對象以某種方式引用相同的對象。可以做一點幫助。

+3

你確定上面的代碼失敗了嗎?你能分享Movie類的實現嗎?順便說一句,前兩部電影有相同的標題。 – VinayC 2011-04-25 09:38:22

+0

您是如何重寫ToString方法或您自己的數據串方法的?顯示該代碼 – V4Vendetta 2011-04-25 10:02:55

+0

您可以粘貼所有代碼嗎?這看起來像僞代碼 - 在第5行上,你只有「電影」,沒有下劃線,接近最後你調用一個小寫toString() – skaz 2011-04-25 11:26:00

回答

0

嘗試改變:

label8.Text = movies[0].toString(); 
    label9.Text = movies[1].toString(); 
    label10.Text = movies[2].toString(); 

要:

label8.Text = movies[0].Title; 
    label9.Text = movies[1].Title; 
    label10.Text = movies[2].Title; 

的原因是您存儲和訪問ToString()Movie類不知道你到底如何想打印出來,除非你重寫字符串方法。

你沒有明確地說,所以我不會假設你已經重寫了ToString()方法。如果你這樣做了,那麼你需要從Movie類中發佈該代碼和任何其他相關代碼。

+0

嗯,我已經意識到這個問題是完全愚蠢的,我意外地讓所有我的變量是靜態的...但是,至少我知道我需要重寫ToString(),toString()。 – steve 2011-04-25 16:56:24

0

這段代碼很好,假設你只是近似你的代碼所做的事情(忽略語法錯誤)。該問題很可能在您的自定義電影ToString()實施中。

相關問題