2012-01-23 5 views
0

私はプログラミングの初心者です。C#です。要素を配列に追加したいと思います。C#の配列に要素を追加する

ここに私の機能です:

public bool AddPlayer(string PlayerName,string token) 
{ 
    static int i = 0; // <---- Error 

    if (PlayerIndex < MAX_NUMBER_OF_PLAYERS) 
    {   
     Player[i]= PlayerName 
     i++; 
    } 

    return true; 
} 

静的int型エラーでI = 0の結果。これを行う別の方法がありますか?

答えて

0

iは、メソッドのローカル変数ではなく、静的なクラスメンバーにする必要があります。おそらくもっと意味のある名前を付けたいと思うかもしれません。

0

実際に静的変数が必要な場合は、メソッドのの外にを定義し、クラス定義内に定義する必要があります。あなたの代わりに、配列のリストを使用している場合

static int i = 0; 

public bool AddPlayer(string playerName, string token) 
{ 
    // method implementation here... 
} 
1

....

は、あなたが行くことができます(そのはるかに可能性の高いリストは、より良いサービスを提供します)Player.Add(PlayerName);

例えば

var players = new List<string>(); 

players.Add("bob"); 
players.Add("mary); 

しかし、おそらくプレイヤークラスが必要なので、 "プレイヤー"に関する他の興味深い情報を追加することができます。

class Player 
{ 
    public string Name { get; set; } 
} 

その後、

var players = new List<Player>(); 

players.Add(new Player() { Name = "bob" }); 
players.Add(new Player() { Name = "mary" }); 
1

これを行うための通常の方法では、配列、Listをない使用することです。ただし、それを行うことができないと仮定して、インデックスをクラスの非静的メンバーにして、コンストラクターで0に初期化する必要があります。

+0

メンバー関数で静的変数を使用できない理由は誰にも分かりますか?あなたは、使用されている場所に最も近い変数を置くことが最善であると考えるでしょう。 – user1164199

+0

@ user1164199おそらく他の何よりも混乱を招くことが予想されました。私は幾分同意します。あなたが本当に必要とする時(そしてあなたは機能を別のクラスに分割するほうが良いわけではありません)はそれほど一般的ではありません。必要があれば、実現可能な実装があります:http://whathecode.wordpress.com/2011/06/13/beyond-private-accessibility/ –

+0

これを使用しないでください。 ; p(ブログの記事で説明されています) –

3

あなたが実際に何人のプレイヤーをストアするか分からないようです(最大まで)。この場合、あなたは、むしろプレイヤーの任意の数に合わせてサイズが変更されます、あなたのプレイヤー名を、保存するためにList<string>を使用する必要があります。

private List<string> players = new List<string>(); 

public void AddPlayer(string playerName,string token) 
{ 
    players.Add(playerName); 
} 
+0

+1、リストの使用について説明します。 :)、そして50 Kへのmakeのための+1:P :) –

+0

後で配列にする必要がある場合、リストには内容を正しいサイズの配列にコピーする "ToArray"関数があります。可能であれば、配列について忘れたり、Listを保持するほうがよいでしょう。 – billpg

0

あなたは、「私」のように静的クラスメンバーを変更することができ、またはあなたが機能を変更することができます静的メソッド

public static bool AddPlayer(string PlayerName,string token) 
関連する問題