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

Паттерн типа

Паттерн типа задают после оператора is или в метке case оператора switch. Запись значение is string str проверяет тип и при совпадении кладёт значение в str уже как string, без отдельного приведения.

Синтаксис

значение is тип имя case тип имя:

Пример

Давайте проверим тип через is string str и выведем длину строки:

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

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

5

Пример

Давайте получим false, если тип не совпал, и переменная не появится в ветке:

using System; class Program { static void Main() { object obj = 5; bool res = obj is string str; Console.WriteLine(res); } }

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

False

Пример

Давайте выберем ветку в switch по типу значения:

using System; class Program { static void Main() { object obj = "12345"; switch (obj) { case string str: Console.WriteLine(str); break; default: Console.WriteLine("other"); break; } } }

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

"12345"

Пример

Давайте сузить тип числа до int в условии:

using System; class Program { static void Main() { object obj = 3; if (obj is int num) { Console.WriteLine(num + 2); } } }

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

5

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

  • паттерн константы,
    который сравнивает значение с константой
  • паттерн var,
    который всегда связывает переменную
  • оператор as,
    который приводит тип и даёт null при неудаче
  • оператор switch-выражение,
    где часто комбинируют шаблоны
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить