代码检查:类型模式和类型转换可以合并
此检查会报告已经检查某个值的类型,但在 case 体或守卫中又重复对相同切换表达式进行类型转换的 switch 情况。 在 case 标签中使用模式变量,可以让代码更简洁、清晰,因为类型值只需声明一次,并可在该 case 的任意位置复用。
示例
switch (obj)
{
case int x when ((int)obj) > 0:
Console.WriteLine((int)obj);
break;
}
switch (obj)
{
case int x when x > 0:
Console.WriteLine(x);
break;
}
快速修复
请使用模式变量,避免重复类型转换。
2026年 5月 8日