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

Паттерн отбрасывания

В шаблоне одиночное _ - паттерн отбрасывания: он всегда успешен и не вводит имя, в отличие от отбрасывания в присваивании или out. Пишут obj is _ или ставят _ на место элемента в позиционном и списковом шаблоне, например (1, _).

Синтаксис

значение is _ (элемент1, _, элемент3)

Пример

Давайте проверить значение паттерном is _ без создания переменной:

using System; class Program { static void Main() { object obj = "abcde"; bool res = obj is _; Console.WriteLine(res); } }

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

True

Пример

Давайте использовать _ в условии is вместо имени:

using System; class Program { static void Main() { int num = 5; if (num is _) { Console.WriteLine("any"); } } }

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

"any"

Пример

Давайте отбросить второй элемент кортежа в позиционном шаблоне:

using System; class Program { static void Main() { (int a, int b) pair = (1, 2); if (pair is (1, _)) { Console.WriteLine("first is 1"); } } }

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

"first is 1"

Пример

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

using System; class Program { static void Main() { int[] nums = [1, 2, 3, 4, 5]; if (nums is [_, _, 3, ..]) { Console.WriteLine("third is 3"); } } }

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

"third is 3"

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

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