Оператор присваивания

Присваивание (assignment) – механизм, который позволяет изменять значения объектов. Простыми словами, с помощью присваивания можно задавать или изменять данные, которые хранятся в переменных.

В языке C# оператор присваивания обозначается символом равенства – “=”, и имеет следующий синтаксис:
<тип данных> <имя переменной> = <значение> в случае, когда создается новая переменная, или
<переменная> = <значение>, коли переменной присваивается новое значение.

int x = 24;
x = 56;

Запись int myNumber = 345 компилятор понимает как:

  • создать область в памяти для хранения целого числа со знаком, размером 32-бита;
  • назначить ей имя myNumber;
  • разместить в этой памяти число 345.

Тип данных значения должен совпадать (или поддерживать неявную конвертацию), с типом переменной.

Кроме этого оператор присваивания позволяет инициализировать, одним и тем же значением, несколько переменных одновременно(но такая запись усложняет чтение кода и мало применяется в практическом программировании):

byte a, b, c;
a = b = c = 111;

Оператор имеет правую ассоциативность, поэтому приведенное выражением воспринимается компилятором как: a = (b = (c = 111));

Составные операторы присваивания

Кроме стандартного, в C# доступны составные операторы присваивания, они позволяют упростить запись выражений, где переменная, которой присваивается значение используется как первый операнд.

Присваивание с арифметическими операциями

Используется со всеми числовыми типами данных.

Сложение с присваиванием +=

Бинарный оператор, который присваивает первому операнду значение его суммы со вторым операндом:

d += e;
//альтернативная форма
d = d + e;

Также может использоваться для конкатенации(склеивания) строк(string):

string s1 = "Text";
s1 += " message"; // Text message; 

Вычитание с присваиванием -=

Бинарный оператор, который присваивает первому операнду результат вычитания из него значения второго операнда.

f -= g;
//альтернативная форма
f = f - g;

Умножение с присваиванием *=

Бинарный оператор, который присваивает первому операнду результат его умножения на второй операнд:

h *= i;
//альтернативная форма
h = h * i;

Деление с присваиванием /=

Бинарный оператор, который присваивает первому операнду результат его деления на второй операнд:

j /= k;
//альтернативная форма
j = j / k;

Деление по модулю с присваиванием %=

Бинарный оператор, который присваивает первому операнду результат остатка от его деления на второй операнд:

m %= n;
//альтернативная форма
m = m % n;

Присваивание с побитовыми операциями

Используются для целочисленных типов данных.

Логическое умножение с присваиванием &=

Бинарный оператор, который присваивает левому операнду результат конъюнкции двоичных форм левого и правого операндов:

b &= c;
//альтернативная форма
b = b & c;

Логическое сложение с присваиванием |=

Бинарный оператор, который присваивает левому операнду результат дизъюнкции двоичных форм левого и правого операндов:

d |= e;
//альтернативная форма
d = d | e;

Логическое сложение по модулю с присваиванием ^=

Бинарный оператор, который присваивает левому операнду результат операции XOR двоичных форм левого и правого операндов:

f ^= j;
//альтернативная форма
f = f ^ j;

Смещение влево с присваиванием <<=

Бинарный оператор, который присваивает первому операнду результат после смещения влево первого, на количество разрядов заданного вторым операндом:

k <<= v;
//альтернативная форма
k = k << v;

Смещение вправо с присваиванием >>=

Бинарный оператор, который присваивает первому операнду результат после смещения вправо первого, на количество позиций заданного вторым операндом:

r >>= s;
//альтернативная форма
r = r >> s;

Смотрите также: