【发布时间】:2015-06-21 16:03:52
【问题描述】:
我需要将静态数组的值分配给另一个静态数组。但是当我这样做时,如果我更改第一个数组,它也会影响另一个数组。那我应该如何分配这些值呢?
我用这个例子简化了我的问题:
class Program
{
static double[] a1;
static double[] a2;
static double b1;
static double b2;
static void Main(string[] args)
{
//First example
a1 = new double[5] { 1,2,3,4,5 };
a2 = new double[5] { 6,7,8,9,10};
a2 = a1;
a1[2] = 99; //I change only a1
Console.WriteLine(a1[2]);
Console.WriteLine(a2[2]);
//Result is:
// 99
// 99 why is a2 changed too?
//Second example
b1 = new double();
b2 = new double();
b1 = 10;
b2 = 20;
b2 = b1;
b1 = 33;
Console.WriteLine(b1);
Console.WriteLine(b2);
//Result is:
// 33
// 10 this is okay
}
}
那么当我分配a2 = a1时,a2得到a1的地址还是什么?但是为什么像我的第二个示例中的正常变量不会发生这种情况?
【问题讨论】: