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

Паттерн var

Запись obj is var name - это шаблон, а не объявление локальной переменной ключевым словом var. Паттерн всегда даёт true и кладёт результат выражения слева в name. Его используют с is и в switch.

Синтаксис

значение is var имя case var имя:

Пример

Давайте сохранить любое значение в переменную через is var val:

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

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

"abcde"

Пример

Давайте убедиться, что проверка всегда успешна для числа:

using System; class Program { static void Main() { int num = 3; bool res = num is var n; Console.WriteLine(res); Console.WriteLine(n); } }

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

True 3

Пример

Давайте взять значение в switch через case var x:

using System; class Program { static void Main() { object obj = 4; switch (obj) { case var x: Console.WriteLine(x); break; } } }

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

4

Пример

Давайте совместить паттерн var с проверкой типа в одном is:

using System; class Program { static void Main() { object obj = "12345"; if (obj is string { Length: var len }) { Console.WriteLine(len); } } }

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

5

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

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