Первичные. Доступ к элементу
х() Вызов метода или делегата
х[]Доступ к элементу
х++ Постфиксный инкремент
х-- Постфиксный декремент
new Выделение памяти
typeof Получение типа
Checked Проверяемый код
unchecked Непроверяемый код
1 В этой таблице символ хпризван показать расположение операнда и не является частью знака операции.
Категория | Знак операции | Название |
унарные | + | Унарный плюс |
- | Унарный минус (арифметическое отрицание) | |
! | Логическое отрицание | |
~ | Поразрядное отрицание | |
++X | Префиксный инкремент | |
--X | Префиксный декремент | |
(тип)X | Преобразование типа | |
Мультипликативные | * | Умножение |
(типа умножения) | ||
/ | Деление | |
% | Остаток от деления | |
Аддитивные (типа сложения) | + | Сложение |
- | Вычитание | |
Сдвига | << | Сдвиг влево |
>> | Сдвиг вправо | |
Отношения | < | Меньше |
и проверки типа | ||
> | Больше | |
<= | Меньше или равно | |
>= | Больше или равно | |
is | Проверка принадлежности типу | |
as | Приведение типа | |
Проверки на | == | Равно |
равенство | ||
!= | Не равно | |
Поразрядные | & | Поразрядная конъюнкция (И) |
логические | ||
^ | Поразрядное исключающее ИЛИ | |
| | Поразрядная дизъюнкция (ИЛИ) | |
Условные логические | && | Логическое И |
|| | Логическое ИЛИ | |
Условная | ?: | Условная операция |
Присваивания | = | Присваивание |
*= | Умножение с присваиванием | |
/= | Деление с присваиванием | |
%= | Остаток отделения с присваиванием | |
+= | Сложение сприсваиванием | |
-= | Вычитание сприсваиванием | |
<<= | Сдвиг влево сприсваиванием | |
>>= | Сдвиг вправо с присваиванием | |
&= | Поразрядное И сприсваиванием | |
^= | Поразрядное исключающее ИЛИ с присваиванием | |
|= | Поразрядное ИЛИ с присваиванием | |
Операции в выражении выполняются в определенном порядке в соответствии с приоритетами, как и в математике. В табл. 3.1 операции расположены по убыванию приоритетов, уровни приоритетов разделены в таблице горизонтальными линиями.
Результат вычисления выражения характеризуется знамением и типом. Например, пусть а и b — переменные целого типа и описаны так:
int а = 2, b = 5;
Тогда выражение а + b имеет значение 7 и тип int. а выражение а = b имеет значение, равное помещенному в переменную а (в данному случае — 5), и тип, совпадающий с типом этой переменной.
Если в одном выражении соседствуют несколько операций одинакового приоритета, операции присваивания и условная операция выполняются справа налево, остальные — слева направо. Для изменения порядка выполнения операций используются круглые скобки, уровень их вложенности практически не ограничен.
Например, а + b + с означает (а + Ь)+с, а а = b = с означает а = (Ь = с). То есть сначала вычисляется выражение b = с, а затем его результат становится правым операндом для операции присваивания переменной а.