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

Присвоєння (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;

Дивіться також: