1

我有一個類俱樂部擁有一個清單_list作爲參數,而「球員」是另一個類......我對加入俱樂部的成員這種方法,全髖關節置換是這種方式實現:如何在C#中的方法調用中傳遞對象實例?

public void AddPlayer(Player p) 
{ 
    if(_list.Contains(p)) 
     throw new Exception("The Player " + p.Name + " " + p.Surname + " is already a   member of this club!"); 
    _list.Add(p); 
} 

現在,當我在我的主程序中執行此操作時:

Player p = new Player("Christiano", "Ronaldo", 1993); 
Club club = new Club("ManUtd", coach); 
club.AddPlayer(p); 

它引發異常,說對象引用未設置爲對象的實例。

+0

你如何初始化變量_list? – Steve

+0

請向我們展示您正在初始化'_list'的代碼。我懷疑它仍然是'空'。 –

+1

一般來說,解決類似問題的最佳方法是在方法中設置斷點,然後遍歷它直到遇到異常。這通常會告訴你在哪裏看。 –

回答

2

(構造函數代碼OP評論搶下)

在你的構造,看起來你只是初始化該方法中的局部變量,而不是場_list。

public Club(string clubName, Coach mycoach) 
{ 
    List<Player> _list = new List<Player>(); 
    ClubName = clubName; 
    Mycoach = mycoach; 
} 

嘗試改變

List<Player> _list = new List<Player>(); 

到:

_list = new List<Player>(); 
+0

你是對的!這就是爲什麼所有其他的構造函數都工作得很好:D我只是複製粘貼_list的整個聲明! :D 非常感謝,現在它工作:) –

1

聽起來就像_list實例變量爲null。嘗試對其進行初始化:

public class Club { 
    private List<Player> _players = new List<Player>(); 
} 
+0

這是我的俱樂部構造函數: public club(string clubName,Coach mycoach) { List _list = new List (); ClubName = clubName; Mycoach = mycoach; } –

+0

@Nicky名稱:Tormod是否正確。考慮一直使用「this」。引用實例字段和屬性。這樣,你會保證不會得到這個錯誤。 – ChaseMedallion

相關問題