Нове в .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 як парам.
Це не зовсім те, що ви хочете (і повірте, я хотів щось подібне до того, що ОП просить давно), але я насправді відчуваю, що це дещо з оливкової гілки від MS. JMO.
Сподіваюся, це комусь допоможе!