Nowością w .Net Core 3.0 / C # 8.0 (jeśli twoje środowisko pracy pozwala na aktualizację projektu) jest krótka instrukcja przełącznika, która wygląda nieco enum. Pod koniec dnia jest to ta sama stara nudna deklaracja zmiany, której używamy od lat.
Jedyną prawdziwą różnicą jest to, że instrukcja zmiany ma nowy kolor.
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)),
};
Zauważysz, że kod powyżej, który skopiowałem stąd , faktycznie używa enum jako parametru.
Nie jest to dokładnie to, czego chcesz (i zaufaj mi, chciałem czegoś podobnego do tego, o co OP prosi od dawna), ale tak naprawdę czuję, że jest to coś w rodzaju gałązki oliwnej z MS. JMO.
Mam nadzieję, że to komuś pomaga!