Книга: C# 4.0: полное руководство
Присваивание ссылок на массивы
Присваивание ссылок на массивы
Присваивание значения одной переменной ссылки на массив другой переменной, по существу, означает, что обе переменные ссылаются на один и тот же массив, и в этом отношении массивы ничем не отличаются от любых других объектов. Такое присваивание не приводит ни к созданию копии массива, ни к копированию содержимого одного массива в другой. В качестве примера рассмотрим следующую программу.
// Присваивание ссылок на массивы.
using System;
class AssignARef {
static void Main() { int i;
int[] numsl = new int [10];
int[] nums2 = new int [10];
for(i=0; i < 10; i++) numsl[i] = i;
for(i=0; i < 10; i++) nums2[i] = -i;
Console.Write("Содержимое массива numsl: ");
for(i=0; i < 10; i++)
Console.Write(numsl[i] + " ");
Console.WriteLine() ;
Console.Write("Содержимое массива nums2: ");
for(i=0; i < 10; i++)
Console.Write(nums2[i] + " ") ;
Console.WriteLine() ;
nums2 = numsl; // теперь nums2 ссылается на numsl
Console.Write("Содержимое массива nums2n" + "после присваивания: ");
for(i=0; i < 10; i++)
Console.Write(nums2[i] + " ") ;
Console.WriteLine() ;
// Далее оперировать массивом numsl посредством
// переменной ссылки на массив nums2. nums2[3] = 99;
Console.Write("Содержимое массива numsl после измененияn" +
"посредством переменной nums2: "); for (i=0; i < 10; i++)
Console.Write(numsl[i] + " ") ;
Console.WriteLine() ;
}
}
Выполнение этой программы приводит к следующему результату.
Содержимое массива numsl: 0 1 2 3 4 5 6 7 8 9
Содержимое массива nums2: 0 -1 -2 -3 -4 -5 -6 -7 -8 -9
Содержимое массива nums2
после присваивания: 0 1 2 3 4 5 6 7 8 9
Содержимое массива numsl после изменения
посредством переменной nums2: 0 1 2 99 4 5 6 7 8 9
Как видите, после присваивания переменной nums 2 значения переменной numsl обе переменные ссылки на массив ссылаются на один и тот же объект.
- ГЛАВА 7 Массивы и строки
- Динамические массивы
- Покупка ссылок
- 9.1 Массивы RAID
- Нормально ли воспринимается поисковыми системами маскировка партнерских ссылок?
- Инварианты класса и семантика ссылок
- Типы ссылок. Имена ячеек
- Массивы
- Автоматизированные биржи ссылок
- 6.3 Массивы структур
- Вставка гиперссылок и графических изображений
- Глава 50 Инструментарий и язык электронных рассылок