1

CardDetails は構造体です。

public static void ParceIntricaciesJabber(ref CardDetails[] WhichArray) 
{
  WhichArray[0].ID = 50;
  WhichArray[0].Type = "None";
}

呼び出し中:

ParceIntricaciesJabber(ref OpponentCards);

関数を呼び出した後、PlayerCards という別の配列が、2 つの異なる配列として宣言されているにもかかわらず、OpponentCards とまったく同じように影響を受けます。それらは同じ数の要素と同じデータ型を持ち、それだけです。

これはおそらく明らかなはずですが、私はそれを見ていません。コードは VB.NET で動作します。私は何を間違っていますか?

編集: 初期化コード:

public static class Module1{

  public static CardDetails[] PlayerCards = new CardDetails[100];
  public static CardDetails[] OpponentCards = new CardDetails[100];

}

また、フォームに移動するときも

for (int n = 1; n <= 100; n++)
        {
            Module1.PlayerCards[n] = new CardDetails();
            Module1.OpponentCards[n] = new CardDetails();
        }
4

1 に答える 1

0

私の推測では、配列への参照を共有していると思います。配列内は構造体ですが、配列自体は参照型です。いずれかの方法で検証するには、配列のインスタンス化コードを投稿する必要があります

于 2013-03-02T06:08:12.283 に答える