4.1. Приоритет и порядок выполнения операций
Большинство операций в языке C#, их приоритет и порядок наследованы из языка C++. Однако имеются и различия: например, нет операции « , » (запятая), позволяющей вычислять список выражений; добавлены уже упоминавшиеся операции checking и unchecking, применимые к выражениям.
Приведем таблицу приоритетов операций (табл. 2), в каждой строке которой собраны операции одного приоритета, а строки следуют в порядке приоритетов, от высшего к низшему.
Таблица 2 Приоритеты операций
Приоритет
|
Категория
|
Операции
|
Порядок
|
0
|
Первичные
|
(expr); x.y; f(x); a[x]; x++;
x new; sizeof(t);
typeof(t); checked(expr);
unchecked(expr)
|
Слева направо
|
1
|
Унарные
|
+ - ! ~ ++x --x (T)x
|
См. выше
|
2
|
Мультипликативные (Умножение)
|
- * / %
|
См. выше
|
3
|
Аддитивные (Сложение)
|
+ -
|
См. выше
|
4
|
Сдвиг
|
<< >>
|
См. выше
|
5
|
Отношения, проверка типов
|
< > <= >= is as
|
См. выше
|
6
|
Эквивалентность
|
== !=
|
См. выше
|
7
|
Логическое И
|
&
|
См. выше
|
8
|
Логическое исключающее ИЛИ (XOR)
|
^
|
См. выше
|
9
|
Логическое ИЛИ (OR)
|
|
|
См. выше
|
10
|
Условное И
|
&&
|
См. выше
|
11
|
Условное ИЛИ
|
||
|
См. выше
|
12
|
Условное выражение
|
? :
|
Справа налево
|
13
|
Присваивание
|
= *= /= %= += -= <<= >>= &= ^= |=
|
См. выше
|