Шпаргалка по Сопоставлению по Шаблону в C#
Сопоставление по шаблону — это функция, используемая для проверки выражений на соответствие некоторым условиям с одновременной проверкой их типов. Исторически оно было отличительной чертой функционального программирования, и уже существует в других популярных языках, таких как Scala, Rust, Python, Haskell, Prolog и многих других. Сопоставление по шаблону было представлено в C# 7, и с тех пор получало множество обновлений в последующих версиях.
Помните, что его можно применять только в выражениях is или switch.
С# 7
Шаблон типа
Проверка типа выражения
public bool IsFood(object product)
=> product is Food;
Шаблон объявления
Проверка типа + присвоение переменной при успехе.
public bool IsFridgeFood(object product)
=> product is Food food &&
RequiresFridge(food.StorageTemp);
Шаблон константы
Проверка на константное значение: int, float, char, string, bool, enum, const, null.
public bool IsFresh(Food food)
=> food?.Category?.ID is (int)Category.Fresh;
Шаблон null
Проверка ссылочного или обнуляемого типа на null
public bool DoesNotExist(Food food)
=> food is null;
Шаблон var
Подобно шаблону типа, шаблон var сопоставляет шаблон, проверяет на null и присваивает значение переменной. Тип var объявляется на основе типа времени компиляции соответствующего выражения.
public bool RequiresFridge(Food food)
=> GetStorageRequirement(food) is var req &&
req is StorageRequirement.Freezer;
Продолжение следует…
Источник: https://codingsonata.com/your-quick-guide-to-pattern-matching-in-c/