使用Switch语句时,可以非常直观的看出这段代码的逻辑判断。比起if-else,个人觉得switch更加直观,简洁。
在C#8之前,可以使用以下代码转换为对应的字符串:
string grade = "A";//成绩等级
string description;
switch (grade)
{
case "A":
description = "很棒!";
break;
case "B":
description = "做得好";
break;
case "C":
description = "通过了";
break;
default:
description = "无效的成绩";
break;
}
但是在C# 8中,有了更加优雅的写法:
description = grade switch
{
"A" => "很棒",
"B" => "做得好",
"C" => "通过了",
_ => "无效的成绩"//default
};
注意:case后必须用常量,即便第二种省略了case关键字,也只能使用常量做case判断。
与上一个版本相比,代码精简了很多,更加直观了,没有了重复的case和break。
有一点需要注意,就是丢弃运算符("_")的使用。