Комбинирование образцов в C#
На практике образцы редко идут по одному. Комбинация образца
свойства и when описывает сообщение целиком.
Число и текст ошибки склеиваются в одну строку. Если ни одна ветка не подошла, сработала бы запасная _:
object msg = new Msg("err", 404);
string line = msg switch
{
Msg { Kind: "err", Code: var c } when c >= 400 => $"error {c}",
Msg { Kind: var k } => k,
_ => "unknown"
};
Console.WriteLine(line); // выведет "error 404"
record Msg(string Kind, int Code);
Разведите ящики с числами 2 и 9: для меньшего верните "low", для большего - "high".
Сопоставьте список из одного числа 9 и выведите "single".