Как и в других C-подобных языках, в C# существуют следующие логические операторы:
| Оператор |
Описание |
Пример |
| && |
Логическое И. Результат равен true, только если оба операнда равны true |
(x==8) && (y==5) |
| || |
Логическое ИЛИ. Результат равен false, только если оба операнда равны false |
(y>8) || (y<5) |
| ! |
Отрицание. Изменяет логическое значение на противоположное |
if(!(a==b))… |
Все эти операторы возвращают результат типа bool.
Обратите внимание, что для логического равно (т. е. для ответа на вопрос “Верно ли, что что-то равно чему-то”) используется знак двойного равенства (==). Знак же одинарного равенства (=) используется для присваивания. Для знака == существует парный знак != (”не равно”). Так, приведенный выше пример для оператора ! можно переписать так:
Отметим, что в C#, в отличии от многих других языков программирования, нельзя вместо false использовать 0, а вместо true – любое ненулевое число. Так, следующий фрагмент содержит ошибку:
int k;
...
if(k) //Ошибка!
...