Nouveau dans .Net Core 3.0 / C # 8.0 (si votre environnement de travail vous permet de mettre à niveau votre projet) est une instruction de commutateur abrégée qui semble quelque peu énumérée. À la fin de la journée, c'est la même vieille déclaration de commutateur ennuyeux que nous utilisons depuis des années.
La seule vraie différence ici est que l'instruction switch a obtenu un nouveau costume.
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)),
};
Vous remarquerez que le code ci-dessus que j'ai copié à partir d' ici utilise en fait une énumération comme paramètre.
Ce n'est pas exactement ce que vous voulez (et croyez-moi, je voulais quelque chose de similaire à ce que l'OP demande depuis longtemps), mais j'ai en fait l'impression que c'est un peu une branche d'olivier de MS. JMO.
J'espère que cela aide quelqu'un!