1

引数として list _list を持つクラス Club がありますが、「Player」は別のクラスです...クラブメンバーを追加するためのこのメソッドがあり、これは次のように実装されています:

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);

オブジェクト参照がオブジェクトのインスタンスとして設定されていないことを示す例外がスローされます。

4

2 に答える 2

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>(); 
于 2013-11-01T23:14:01.357 に答える
1

_list インスタンス変数が null のようです。初期化してみてください:

public class Club {
    private List<Player> _players = new List<Player>();
}
于 2013-11-01T23:05:51.223 に答える