代码检查:类型模式和转换可以合并
此检查会报告 switch 已经检查过值类型,但在 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日