[Перевод] Сопоставление с образцом на C#: объяснение и примеры
За годы своего развития C# существенно эволюционировал; одна из самых мощных фич языка — это сопоставление с образцом ( pattern matching) . Работая недавно над небольшим хобби-проектом, я наткнулся на такую прекрасную строку кода C#. if (person is not null and { Age: > 18 }) {} Выглядит изящно. Откровенно говоря, она заставила меня призадуматься. Годами я писал проверки на null и свойства-аксессоры классическим образом: if (person != null && person.Age > 18) {} Функционально? Да. Удобочитаемо? Не особо. Безопасно? Спорно, особенно когда код становится сложнее. Я решил создать шорт YouTube об этом современном синтаксисе. Это небольшое забавное напоминание о том, что C# позволяет при помощи сопоставления с образцом комбинировать проверки на null и обращение к свойству в одно условие. Я понятия не имел, что это короткое видео приведёт к гораздо более глубокому исследованию, и покажет мне, насколько полезно и универсально сопоставление с образцом в современном C#. Эта фича повышает читаемость, уменьшает объём бойлерплейта и обеспечивает более выразительную обработку логики. В этой статье мы изучим различные типы образцов, поддерживаемых в C#, их работу и поймём, когда их использовать, на понятных примерах из реального мира.
