Операторы отношения, логические и поразрядные операторы

Операторы отношения используются для сравнения двух величин, а поразрядные операторы — для выполнения поразрядных операций между величинами.

Логическое отрицание

Оператор ! возвращает отрицание логической (булевой) величины.

Операторы отношения

В C# определяются следующие операторы отношения:

Операция

Описание

a == b

Возвращает истину, если a равно b

a != b

Возвращает истину, если a не равно b

a < b

Возвращает истину, если a меньше b

a <= b

Возвращает истину, если a меньше или равно b

a > b

Возвращает истину, если a больше b

a >= b

Возвращает истину, если a больше или равно b

Эти операторы возвращают результат типа bool.

При сравнении двух объектов ссылочного типа компилятор сначала ищет операторы отношения, определенные для этих объектов. Если он не находит подходящего оператора, то для операторов отношения == и != вызывается соответствующий оператор отношения класса object. Этот оператор сравнивает, относятся ли два операнда к одному объекту; значения их переменных при этом не сравниваются.

Для типа string операторы отношения перегружаются так, чтобы == и != сравнивали не ссылки, а содержимое строк.

Логические и поразрядные операторы

В C# определяются следующие логические и поразрядные операторы:

Оператор

Описание

&

Поразрядная операция AND с двумя операндами

|

Поразрядная операция OR с двумя операндами

^

Поразрядная операция XOR (исключающее OR) с двумя операндами

&&

Логическая операция AND с двумя операндами

||

Логическая операция OR с двумя операндами

Операторы &, | и ^ обычно используются с целыми типами данных, хотя они также могут применяться и к типу bool.

Операторы && и || отличаются от своих односимвольных версий тем, что они выполняют ускоренные вычисления. В выражении

a && b

b вычисляется лишь в том случае, если a равно true. В выражении

a || b

b вычисляется лишь в том случае, если a равно false.

Оператор проверки

Оператор проверки (?:), также называемый тернарным оператором, выбирает одно из двух выражений на основании логического условия.

int value = (x < 10) ? 15 : 5

В этом примере сначала вычисляется значение управляющего выражения (x < 10). Если оно равно true, результат оператора равен значению первого выражения, следующего за знаком вопроса (15 в нашем примере). Если управляющее выражение равно false, результат оператора равен значению выражения, следующего за двоеточием (5).

Предлагаю ознакомиться с аналогичными статьями: