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