ใหม่ใน. Net Core 3.0 / C # 8.0 (หากสภาพแวดล้อมการทำงานของคุณอนุญาตให้คุณอัพเกรดโครงการของคุณ) เป็นคำสั่งสลับมือสั้นที่มีลักษณะค่อนข้าง enum-ish ในตอนท้ายของวันมันเป็นคำสั่งสลับที่น่าเบื่อเหมือนเดิมที่เราใช้มานานหลายปี
ข้อแตกต่างที่แท้จริงเท่านั้นที่นี่คือคำสั่ง switch ได้รับชุดใหม่
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 jmo
หวังว่ามันจะช่วยให้ใครบางคน!