Yeni de .Net Çekirdek 3.0 / C # 8.0 (Çalışma ortamınız Projenizi yükseltmek için izin verirse) kısa el switch deyimi olduğunu görünüyor biraz enum arası. Günün sonunda, yıllardır kullandığımız eski sıkıcı anahtar ifadesi.
Buradaki tek gerçek fark, switch ifadesinin yeni bir takım olması.
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)),
};
Buradan kopyaladığım kodun aslında bir enum'u bir param olarak kullandığını göreceksiniz .
Tam olarak ne istediğinizi değil (ve bana güvenin, OP'nin uzun zamandır talep ettiği şeye benzer bir şey istedim), ama aslında bunun bir parça MS'den bir zeytin dalı olduğunu hissediyorum. JMO.
Umarım birine yardım eder!