Мне нужно присвоить значения статического массива другому статическому массиву. Но когда я это делаю, если я меняю первый массив, он также влияет на другой. Как мне присвоить эти значения?C# Статические массивы - присвоение значений статического массива другому статическому массиву
я упростил мою проблему с этим, например:
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
}
}
Так что, когда я Asign a2 = a1, a2 получает адрес a1 в или что-то? Но почему этого не происходит с обычными переменными, как в моем втором примере?
https://msdn.microsoft.com/en-us/library/ms173109.aspx – Rhumborl
[Типы ссылок и типы значений] (http://www.albahari.com/valuevsreftypes.aspx) Я действительно предлагаю вам понять эта концепция – Steve