ReSharper 2026.1 Help

代码检查:类型模式和类型转换可以合并

此检查会报告已经检查某个值的类型,但在 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日