Книга: C# для профессионалов. Том II

Присваивание

Присваивание

C# и Java используют знак = для присваивания значений переменным. В C#, как и в Java, переменные присвоенные объектам содержат только ссылку или "адрес" на этот объект, а не сам объект. Присваивание одной ссылочной переменной другой таким образом просто копирует "адрес" в новую переменную. Следовательно обе переменные теперь имеют возможность делать ссылку на один объект. Эту концепцию легко проиллюстрировать с помощью примера. Рассмотрим класс ExOperators, приведенный ниже:

public class EXOperators {
 internal int р;
 public EXOperators() {}
 public static void Main() {
  ExOperators one = new EXOperators();
  one.p = 200;
  EXOperators two;
  two = one;
  two.p = 100;
  Console.WriteLine(two.p);
  Console.WriteLine(one.p);
 }
}

Пока проигнорируем ключевое слово internal перед переменной р. Оно является модификатором доступа, который будет рассмотрен далее в этой главе. Достаточно сказать, что оно делает переменную р видимой для метода Main. Приведенный выше пример создает экземпляр объекта EXOperators и сохраняет его в локальной переменной one. Эта переменная затем присваивается другой переменной — two. После этого значение p в объекте, на который ссылается two, изменяется на 100. В конце выводится значение переменной p в обоих объектах. Компиляция и выполнение этого даст результат 100 дважды, указывая, что изменение two.р было тем же самым, что изменение значения one.р.

Оглавление книги


Генерация: 0.418. Запросов К БД/Cache: 2 / 0
поделиться
Вверх Вниз