Если выражение содержит несколько операторов, порядок вычисления частей выражения определяется приоритетом операторов. Приоритет, используемый по умолчанию, можно изменить посредством группировки элементов в скобки:
int value = 1 + 2 * 3; // 1 + (2 * 3) = 7
value = (1 + 2) * 3; // (1 + 2) * 3 = 9
В C# все бинарные операторы являются лево-ассоциативными; это означает, что операции выполняются слева направо. Исключением являются операторы присваивания и оператор проверки (?:), выполняемые справа налево.
В следующей таблице перечислены все операторы в порядке убывания приоритета.
| Категория | Операторы |
| Первичные операторы | (x) x.y f(x) a[x] x++ x-- new typeof sizeof checked unchecked |
| Унарные операторы | + - ! ~ ++x --x (T)x |
| Операторы умножения и деления | * / % |
| Операторы сложения и вычитания | + - |
| Операторы сдвига | << >> |
| Операторы отношения | < > <= >= is |
| Операторы равенства | == != |
| Поразрядный оператор AND | & |
| Поразрядный оператор XOR | ^ |
| Поразрядный оператор OR | | |
| Логический оператор AND | && |
| Логический оператор OR | || |
| Оператор проверки | ?: |
| Оператор присваивания | = *= /= %= += -= <<= >>= &= ^= |= |
0 коммент.:
Отправить комментарий