Книга: 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.р
.
- Присваивание функции результата
- Присваивание функций. Функциональный тип данных
- Составное присваивание
- 5.12.2 Присваивание сети адресов класса В
- Переменные ссылочного типа и присваивание
- Пример 4-3. Присваивание значений переменным простое и замаскированное
- 4.2. Присваивание значений переменным
- Присваивание (Assignment)
- 2.6. Присваивание характеристик динамическим эффектам
- 5.12.1 Присваивание сети адресов класса A
- 5.12.3 Присваивание сетям адресов класса С
- 11.7.4 Присваивание IP-адресов