Новое в .Net Core 3.0 / C # 8.0 (если ваша рабочая среда позволяет вам обновить ваш проект) - это краткая инструкция переключения, которая выглядит несколько перечисляемой. В конце концов, это то же самое скучное заявление о переключении, которое мы использовали годами.
Единственная реальная разница здесь в том, что заявление о замене получило новый костюм.
public static RGBColor FromRainbow(Rainbow colorBand) =>
colorBand switch
{
Rainbow.Red => new RGBColor(0xFF, 0x00, 0x00),
Rainbow.Orange => new RGBColor(0xFF, 0x7F, 0x00),
Rainbow.Yellow => new RGBColor(0xFF, 0xFF, 0x00),
Rainbow.Green => new RGBColor(0x00, 0xFF, 0x00),
Rainbow.Blue => new RGBColor(0x00, 0x00, 0xFF),
Rainbow.Indigo => new RGBColor(0x4B, 0x00, 0x82),
Rainbow.Violet => new RGBColor(0x94, 0x00, 0xD3),
_ => throw new ArgumentException(message: "invalid enum value", paramName: nameof(colorBand)),
};
Вы заметите, что код выше, который я скопировал отсюда , на самом деле использует enum в качестве параметра.
Это не совсем то, что вы хотите (и, поверьте мне, я давно хотел чего-то похожего на то, что запрашивает OP), но на самом деле я чувствую, что это нечто вроде оливковой ветви от MS. СМЭ.
Надеюсь, это поможет кому-то!