True c что это
Перейти к содержимому

True c что это

Операторы true и false (справочник по C#)

Оператор true возвращает значение true true , указывая, что его операнд имеет значение true. Оператор false возвращает значение bool true , указывая, что его операнд имеет значение false. Операторы true и false не обязательно дополняют друг друга. То есть оба оператора true и false могут вернуть значение bool false для одного операнда. Если тип определяет один из двух операторов, он должен также определять другой оператор.

Используйте тип bool? , если вам нужно использовать трехзначную логику (например, при работе с базами данных, которые поддерживают трехзначный логический тип). В C# предоставляются операторы & и | , которые поддерживают троичную логику с операндами bool? . См. подробнее о логических операторах, поддерживающих значение NULL в описании логических операторов.

Логические выражения

Тип с определенным оператором true может быть типом результата управляющего условного выражения в операторах true , do, while и for и условном операторе . Дополнительные сведения см. в описании логических выражений в спецификации языка C#.

Пользовательские условные логические операторы

Если тип с определенными операторами true и false true логические операторы false | или | & определенным образом, & || или || && соответственно могут вычисляться для операндов этого типа. Дополнительные сведения см. в разделе Пользовательские условные логические операторы в Спецификации языка C#.

Пример

В следующем примере представлен тип, который определяет операторы true и false . Этот тип также перегружает логический оператор И & таким образом, что оператор && может быть вычислен для операндов этого типа.

Урок 9. Перегрузка True и False в C#

На девятом уроке в учебнике по объектно-ориентированному программированию на языке C# мы продолжим обсуждение перегрузки операторов. В данной статье описана перегрузка операторов true и false, позволяющая использовать объект в условной обработке.

True и False как операторы

Ключевые слова true и false имеют много применений в C#. Одно из этих применений — это пара операторов внутри класса, которые позволяют классу представлять свое собственное состояние как истинное или ложное. Определение результата осуществляется в закодированных программистом правилах. Это эффективно дает неявное преобразование типа в логическое значение, которое затем может использоваться в сценариях условной обработки, таких как оператор if или условный оператор (?).

В этой статье используется класс Vector, разработанный в предыдущей статье.

Добавление операторов True и False

Поведение по умолчанию

Поведение по умолчанию любого класса заключается в отсутствии поддержки операторов true и false. Это означает, что если будет предпринята попытка оценить объект такого класса как Boolean, то код не будет скомпилирован. Это можно продемонстрировать, используя векторный объект в качестве условия в операторе if. Измените основной метод программы VectorDemo следующим образом и попытайтесь скомпилировать его, чтобы увидеть ошибку.

Перегрузка true и false

Синтаксис перегрузки операторов true и false аналогичен синтаксису других унарных операторов. Существуют два ограничения. Во-первых, возвращаемое значение должно быть логическим. Во-вторых, недопустимо перегружать только один из двух операторов; если истинный оператор перегружен, то он должен быть ложным и наоборот.

Добавление True и False в класс Vector

Класс Vector теперь можно обновить, включив в него перегруженные версии операторов true и false. В случае векторов объект будет считаться «истинным», если любое из свойств вектора X или Y не равно нулю. Если значения X и Y равны нулю, объект будет оцениваться как false. Это просто реализуется путем добавления следующего кода:

Тестирование кода

Теперь, когда эти два оператора были добавлены, вы должны быть в состоянии скомпилировать и выполнить основной метод, описанный выше. Поскольку координаты вектора X и Y не равны нулю, код выводит текст «True». Если вы измените объявление вектора следующим образом, код выведет false вместо этого.


Автор этого материала — я — Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML — то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

тегистатьи IT, си шарп, ООП

Логические операторы C#

Логические операторы предназначены для выстраивания логики программы, например, определить какое действие должны выполнить программа в результате получение какого-либо значения выражения. В C# логические операторы, как и арифметические могут быть унарными и бинарными.

Логические операторы C#

  • логическое отрицание ( ! )
  • логическое И ( & ),
  • логическое ИЛИ ( | ),
  • логическое исключающее ИЛИ ( ^ ).
  • условное логическое И ( && )
  • условное логическое ИЛИ ( || )
  • равенство ( == )
  • неравенство ( != )
  • меньше чем ( < ),
  • больше чем ( > ),
  • меньше или равно ( <= )
  • больше или равно ( >= )

Условный оператор if

Для дальнейшего рассмотрения темы логических операторов в C# стоит затронуть вопрос о таком условном операторе, как if . В C# этот операторы выглядит следующим образом:

Здесь, в отличие от Delphi, можно увидеть, что: во-первых, в C# нет then перед первым условием и, во-вторых, после первого действия обязательно ставиться точка с запятой, чего в Delphi делать не надо. В остальном же, действие оператора точно такое же как и в Delphi и любых других языках программирования — если выполняется условие, то программы переходит на действие 1 , иначе — на действие 2 .

Теперь перейдем к логическим операторам в C#.

Унарный логический оператор ( ! )

Унарный префиксный оператор ! выполняет логическое отрицание операнда, то есть, возвращает true , если операнд имеет значение false , и, наоборот, false , если операнд имеет значение true .

вернет нам в консоль строку

Логическое И ( & )

Это оператор всегда обрабатывает оба операнда и возвращает True только в том случае, если оба оператора равны True . Например,

Логическое ИЛИ ( | )

Так же, как и предыдущий оператор, логическое ИЛИ обрабатывает оба операнда. В отличие от логического И этот оператор вернет True , если хотя бы один операнд будет иметь значение True .

Логическое исключающее ИЛИ ( ^ ).

Вычисляет оба операнда, но возвращает True только в том случае, если левый и правы операторы не равны, то есть результат применения этого оператора можно представить следующим образом:

a b Результат ^
True True False
False False False
True False True
False True True

Ниже представлен код, демонстрирующий данные из таблицы:

Условное логическое И ( && )

В отличие от предыдущих бинарных логических операторов C# этот оператор обрабатывает правый операнд только тогда, когда это необходимо. Действие этого оператора следующее — он возвращает True только тогда, когда оба оператора равны True .

a b Результат &&
True True True (правый операнд обработан)
False False False (правый операнд не обработан)
True False False (правый операнд обработан)
False True False (правый операнд не обработан

Код, демонстрирующий работу оператора представлен ниже

Вывод консоли будет следующим

Правый операнд обработан

Условное логическое ИЛИ ( || )

Также, как и предыдущий оператор, условное логическое ИЛИ обрабатывает правый оператор только когда необходимо. При этом результат выполнения условного логического ИЛИ будет True , если хотя бы один из операндов равен True .

a b Результат ||
True True True (правый не операнд обработан)
False False False (правый операнд обработан)
True False True (правый не операнд обработан)
False True True (правый операнд обработан

Код, демонстрирующий поведение уловного логического ИЛИ представлен ниже:

Вывод консоли будет следующим:

Правый операнд обработан

Правый операнд обработан

Операторы равенства в C#

Равенство (==)

Равенство встроенных типов значений

Операнды встроенных типов значений равны, если равны их значения. Например,

Равенство перечислений

Применительно к перечислениям, оператор == вернет true , если если равны соответствующие значения базового целочисленного типа. Например,

Равенство строк

Два операнда string равны, если они оба имеют значение null или оба экземпляра строки имеют одинаковую длину и идентичные символы в каждой позиции символа.

Неравенство (!=)

Оператор вернет true , если операнды не равны между собой. Действие оператора аналогично оператору равенства.

Операторы сравнения

Эти операторы поддерживаются всеми целочисленными типами и типами с плавающей запятой.

Меньше чем (<)

Оператор < возвращает true , если его левый операнд строго меньше правого. В противном случае возвращается false .

Больше чем (>)

Оператор > возвращает true , если его левый операнд больше правого. В противном случае возвращается false .

Меньше или равно (<=)

Оператор <= возвращает true , если его левый операнд меньше или равен правому. В противном случае возвращается false .

Больше или равно (>=)

Оператор >= возвращает true , если его левый операнд больше или равен правому. В противном случае возвращается false .

Итого

Сегодня мы познакомились с логическими операторами в C#, а также рассмотрели некоторые особенности использования этих операторов. На данный момент мы знаем, что такое переменная, как объявлять и инициализировать переменные, какие типы данных есть в C#, а также какие арифметические и логические операторы мы можем применять в своих приложения на C#. Теперь можно приступать к более детальному рассмотрению типов данных в C#.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *