Если выражение содержит несколько операторов, порядок вычисления частей выражения определяется приоритетом операторов. Приоритет, используемый по умолчанию, можно изменить посредством группировки элементов в скобки:
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 коммент.:
Отправить комментарий