Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
75 of 1492 menu
◀ ▶

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

Ключевые слова and, or и not связывают шаблоны в одном выражении is. Например, num is > 0 and < 10 задаёт диапазон, а obj is not null отсекает null. Скобки задают приоритет, как в обычных логических выражениях.

Синтаксис

значение is шаблон1 and шаблон2 значение is not шаблон значение is (шаблон1 or шаблон2)

Пример

Давайте проверить, лежит ли число 5 между 0 и 10:

using System; class Program { static void Main() { int num = 5; bool res = num is > 0 and < 10; Console.WriteLine(res); } }

Результат выполнения кода:

True

Пример

Давайте отсечь null через not null:

using System; class Program { static void Main() { string? str = "abcde"; if (str is not null) { Console.WriteLine(str.Length); } } }

Результат выполнения кода:

5

Пример

Давайте объединить два сравнения через or в скобках:

using System; class Program { static void Main() { int num = 15; bool res = num is (< 0 or > 10); Console.WriteLine(res); } }

Результат выполнения кода:

True

Пример

Давайте уточнить тип и диапазон в одном шаблоне через and:

using System; class Program { static void Main() { object obj = 5; if (obj is int n and > 0 and < 10) { Console.WriteLine(n); } } }

Результат выполнения кода:

5

Смотрите также

  • паттерн сравнения,
    который задаёт порог в and-цепочке
  • паттерн константы,
    который часто стоит после not
  • паттерн свойства,
    где внутри полей тоже бывает and
  • условие when,
    которое добавляет проверку к case
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить