Nuevo en .Net Core 3.0 / C # 8.0 (si su entorno de trabajo le permite actualizar su proyecto) es una declaración de cambio breve que parece algo enumista. Al final del día, es la misma declaración de cambio aburrida que hemos estado usando durante años.
La única diferencia real aquí es que la declaración de cambio tiene un nuevo traje.
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)),
};
Notarás que el código anterior que copié desde aquí , en realidad está usando una enumeración como parámetro.
No es exactamente lo que quieres (y confía en mí, he querido algo similar a lo que el OP está solicitando durante mucho tiempo), pero realmente siento que esto es algo así como una rama de olivo de MS. JMO
Espero que ayude a alguien!