Присваивание значения одной переменной ссылки на массив другой переменной, по существу, означает, что обе переменные ссылаются на один и тот же массив, и в этом отношении массивы ничем не отличаются от любых других объектов. Такое присваивание не приводит ни к созданию копии массива, ни к копированию содержимого одного массива в другой.
//присваивание ссылок на массивы.
using System;
class AssignARef
{
static void Main()
{
int i;
int[] nums1 = new int[10];
int[] nums2 = new int[10];
for (i = 0; i < 10; i++) nums1[i] = i;
for (i = 0; i < 10; i++) nums2[i] = -i;
Console.Write("Содержимое массива nums1: ");
for (i = 0; i < 10; i++)
Console.Write(nums1[i] + " ");
Console.WriteLine();
Console.Write("Содержимое массива nums2: ");
for (i = 0; i < 10; i++)
Console.Write(nums2[i] + " ");
Console.WriteLine();
nums2 = nums1; //теперь nums2 ссылается на nums1
Console.Write("Содержимое массива nums2\n после присваивания: ");
for (i = 0; i < 10; i++)
Console.Write(nums2[i] + " ");
Console.WriteLine();
//далее оперировать массивом nums2 посредством
//переменной ссылки на массив nums2.
nums2[3] = 99;
Console.Write("Содержимое массива nums1 после изменения\n" +
"посредством переменной nums2: ");
for (i = 0; i < 10; i++)
Console.Write(nums1[i] + " ");
Console.WriteLine();
}
}