在C#中定义枚举switch
时间:2020-02-23 14:29:51 来源:igfitidea点击:
在使用a时 switch
C#中的陈述,如果使用数值,则决定的原因可能是毫无清楚的。
例如,以下代码并不真正告诉我们决策过程:
//Create an ambiguous switch statement. int mySelection = 2; switch (mySelection) { case 0: Console.WriteLine("You chose red."); break; case 1: Console.WriteLine("You chose orange."); break; case 2: Console.WriteLine("You chose yellow."); break; case 3: Console.WriteLine("You chose green."); break; case 4: Console.WriteLine("You chose blue."); break; case 5: Console.WriteLine("You chose purple."); break; }
这个代码让你想知道为什么 mySelection
有价值 2
分配给它以及这些输出语句的所有内容。
代码有效,但它背后的推理是混乱的。
要使此代码更可读,我们可以使用枚举的交换机,如下所示:
//Create a readable switch statement. Colors myColorSelection = Colors.Yellow; switch (myColorSelection) { case Colors.Red: Console.WriteLine("You chose red."); break; case Colors.Orange: Console.WriteLine("You chose orange."); break; case Colors.Yellow: Console.WriteLine("You chose yellow."); break; case Colors.Green: Console.WriteLine("You chose green."); break; case Colors.Blue: Console.WriteLine("You chose blue."); break; case Colors.Purple: Console.WriteLine("You chose purple."); break; }
两种情况下输出相同:"你选择了黄色。
"但是,在第二种情况下,代码无限更可读。
只需查看代码,我们就知道 myColorSelection
具有分配给它的颜色值。
另外,使用a Colors
每个人的成员 case
声明使选择清晰。
我们了解代码需要特定路径的原因。