Baru di .Net Core 3.0 / C # 8.0 (jika lingkungan kerja Anda memungkinkan Anda untuk memutakhirkan proyek Anda) adalah pernyataan sakelar tangan pendek yang terlihat agak enum-ish. Pada akhirnya, itu adalah pernyataan beralih membosankan lama yang sama yang telah kami gunakan selama bertahun-tahun.
Satu-satunya perbedaan nyata di sini adalah bahwa pergantian pernyataan mendapat setelan baru.
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)),
};
Anda akan melihat bahwa kode di atas yang saya salin dari sini , sebenarnya menggunakan enum sebagai param.
Ini bukan apa yang Anda inginkan (dan percayalah, saya menginginkan sesuatu yang mirip dengan apa yang diminta OP untuk waktu yang lama), tetapi saya benar-benar merasa ini semacam cabang zaitun dari MS. JMO.
Semoga ini bisa membantu seseorang!