数组通过引用参数影响另一个数组

时间:2013-03-02 04:52:40

标签: c# parameters undefined-behavior

CardDetails是一个结构。

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

致电:

ParceIntricaciesJabber(ref OpponentCards);

在我调用该函数之后,另一个名为PlayerCards的数组受到影响的方式与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();
        }

1 个答案:

答案 0 :(得分:0)

我的猜测是你正在分享对数组的引用。即使它是数组内部的结构,数组本身也是引用类型。您需要发布数组实例化代码以验证这种或那种方式