代码检查:用 'switch' 表达式替换三元表达式
此检查会报告嵌套的条件表达式,这些表达式反复测试相同的输入,并且可以重写为 switch 表达式。 当一连串的 ?: 条件表现得像紧凑的多分支选择时,通常会出现这种情况。
示例
var score =
status == OrderStatus.New ? 0 :
status == OrderStatus.Paid ? 1 :
status == OrderStatus.Shipped ? 2 :
3;
var score = status switch
{
OrderStatus.New => 0,
OrderStatus.Paid => 1,
OrderStatus.Shipped => 2,
_ => 3
};
快速修复
switch 表达式比冗长的三元链更易于阅读,也让每个分支更加显式。
2026年 5月 8日