Операторы в C#: полное руководство с примерами
Что такое операторы
Оператор — это символ, указывающий компилятору выполнить определённые математические или логические манипуляции. C# предоставляет богатый набор встроенных операторов:
- Арифметические
- Отношения (сравнения)
- Логические
- Побитовые
- Присваивания
- Разные (miscellaneous)
Арифметические операторы
Предположим: A = 10, B = 20.
| Оператор | Описание | Пример |
|---|---|---|
+ | Сложение | A + B = 30 |
- | Вычитание | A - B = -10 |
* | Умножение | A * B = 200 |
/ | Деление | B / A = 2 |
% | Остаток от деления | B % A = 0 |
++ | Инкремент (+1) | A++ = 11 |
-- | Декремент (-1) | A-- = 9 |
Операторы отношения
Предположим: A = 10, B = 20. Результат — bool.
| Оператор | Описание | Пример |
|---|---|---|
== | Равно | (A == B) → false |
!= | Не равно | (A != B) → true |
> | Больше | (A > B) → false |
< | Меньше | (A < B) → true |
>= | Больше или равно | (A >= B) → false |
<= | Меньше или равно | (A <= B) → true |
Логические операторы
Предположим: A = true, B = false.
| Оператор | Описание | Пример |
|---|---|---|
&& | Логическое И (короткое замыкание) | (A && B) → false |
|| | Логическое ИЛИ (короткое замыкание) | (A || B) → true |
! | Логическое НЕ | !(A && B) → true |
Побитовые операторы
Работают с битами целых чисел. Таблицы истинности для &, |, ^:
| p | q | p & q | p | q | p ^ q |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 |
| 1 | 0 | 0 | 1 | 1 |
Пример: A = 60 (0011 1100), B = 13 (0000 1101)
A & B = 12 (0000 1100)
A | B = 61 (0011 1101)
A ^ B = 49 (0011 0001)
~A = -61 (1100 0011 в дополнительном коде)
A << 2 = 240 (1111 0000)
A >> 2 = 15 (0000 1111)
| Оператор | Описание | Пример |
|---|---|---|
& | Побитовое И | (A & B) = 12 |
| | Побитовое ИЛИ | (A | B) = 61 |
^ | Побитовое исключающее ИЛИ | (A ^ B) = 49 |
~ | Побитовое НЕ (инверсия) | (~A) = -61 |
<< | Сдвиг влево | A << 2 = 240 |
>> | Сдвиг вправо | A >> 2 = 15 |
Операторы присваивания
| Оператор | Описание | Эквивалент |
|---|---|---|
= | Простое присваивание | C = A + B |
+= | Сложение с присваиванием | C += A → C = C + A |
-= | Вычитание с присваиванием | C -= A → C = C - A |
*= | Умножение с присваиванием | C *= A → C = C * A |
/= | Деление с присваиванием | C /= A → C = C / A |
%= | Остаток с присваиванием | C %= A → C = C % A |
<<= | Сдвиг влево с присваиванием | C <<= 2 → C = C << 2 |
>>= | Сдвиг вправо с присваиванием | C >>= 2 → C = C >> 2 |
&= | Побитовое И с присваиванием | C &= 2 → C = C & 2 |
^= | Побитовое XOR с присваиванием | C ^= 2 → C = C ^ 2 |
|= | Побитовое ИЛИ с присваиванием | C |= 2 → C = C | 2 |
Разные операторы
| Оператор | Описание | Пример |
|---|---|---|
sizeof() | Размер типа в байтах | sizeof(int) = 4 |
typeof() | Объект Type для типа | typeof(string) |
& | Адрес переменной (unsafe) | &a |
* | Разыменование указателя (unsafe) | *p |
? : | Тернарный условный | x > 0 ? "pos" : "neg" |
is | Проверка типа | obj is string |
as | Приведение с null при неудаче | obj as string |
?? | Null-coalescing | x ?? "default" |
??= | Null-coalescing assignment | x ??= "default" |
Приоритет операторов
Операторы с высшим приоритетом вычисляются раньше. Таблица (от высшего к низшему):
| Категория | Операторы | Ассоциативность |
|---|---|---|
| Постфиксные | () [] . ++ -- | Слева направо |
| Унарные | + - ! ~ ++ -- (type) * & sizeof | Справа налево |
| Мультипликативные | * / % | Слева направо |
| Аддитивные | + - | Слева направо |
| Сдвиг | << >> | Слева направо |
| Отношения | < <= > >= | Слева направо |
| Равенства | == != | Слева направо |
| Побитовое И | & | Слева направо |
| Побитовое XOR | ^ | Слева направо |
| Побитовое ИЛИ | | | Слева направо |
| Логическое И | && | Слева направо |
| Логическое ИЛИ | || | Слева направо |
| Условный | ?: | Справа налево |
| Присваивание | = += -= *= /= %= >>= <<= &= ^= |= | Справа налево |
| Запятая | , | Слева направо |
Пример: x = 7 + 3 * 2 → x = 13 (сначала 3*2=6, потом 7+6=13).
Язык C
- Операторы C# — исчерпывающее руководство по операторам в C#
- Освоение побитовых и сдвиговых операторов в C#: полное руководство
- Освоение операторов C++: полное руководство с практическими примерами
- Операторы в C: исчерпывающее руководство
- Мастерство операторов Python: Полное руководство
- Освоение операторов Java: типы, синтаксис и практические примеры
- Побитовые операторы в C: И, ИЛИ, XOR, сдвиги и дополнение — подробно
- Операторы Verilog: основная арифметика и управление для синтеза
- Основные операторы Java: полное руководство
- Операторы в C: полное руководство по арифметическим, битовым, логическим и другим операторам