View in Telegram
Pattern-matching — это функциональность языка, позволяющая проверять объект на соответствие определённому шаблону и выполнять действия, если объект удовлетворяет этим условиям. Этот механизм помогает писать более читабельный и компактный код, устраняя необходимость в громоздких конструкциях вроде if-else или switch. Паттерн-матчинг в C# активно развивается с каждой новой версией языка и поддерживает множество типов паттернов, таких как: 1️⃣ Проверка типа Используется для проверки типа объекта и его преобразования в этом же выражении.
object obj = "Hello, world!";
if (obj is string str)
{
    Console.WriteLine($"Длина строки: {str.Length}");
}
2️⃣ Константные паттерны Проверяет значение переменной на соответствие константе.
int number = 42;
if (number is 42)
{
    Console.WriteLine("Число равно 42");
}
3️⃣ Реляционные и логические паттерны Сравнивает значения и комбинирует паттерны с помощью логических операторов (and, or, not).
int age = 25;
if (age is > 18 and < 30)
{
    Console.WriteLine("Возраст в диапазоне от 18 до 30");
}
4️⃣ Паттерны в выражении switch Улучшает конструкцию switch, позволяя использовать сложные условия.
object shape = new Circle { Radius = 5 };

string description = shape switch
{
    Circle { Radius: > 0 } c => $"Круг с радиусом {c.Radius}",
    Rectangle { Width: > 0, Height: > 0 } r => $"Прямоугольник {r.Width}x{r.Height}",
    _ => "Неизвестная форма"
};
5️⃣ Свойственные паттерны Позволяют проверять свойства объекта.
Person person = new Person { Name = "Alice", Age = 30 };

if (person is { Name: "Alice", Age: > 25 })
{
    Console.WriteLine("Это Алиса старше 25 лет");
}
6️⃣ Список и позиционные паттерны Используются для проверки списков и кортежей.
int[] numbers = { 1, 2, 3 };

if (numbers is [1, 2, 3])
{
    Console.WriteLine("Массив содержит 1, 2, 3");
}
🐸Библиотека шарписта
Please open Telegram to view this post
VIEW IN TELEGRAM
Love Center - Dating, Friends & Matches, NY, LA, Dubai, Global
Love Center - Dating, Friends & Matches, NY, LA, Dubai, Global
Find friends or serious relationships easily