ReSharper 2025.2 Help

代码检查:局部变量隐藏主构造函数参数

在下面的示例中,在 Print() 方法中声明的局部变量 str 与主构造函数参数同名,但仍然可以清楚地看到 Console.WriteLine(str); 将输出 two

现在假设 Print() 中的 str 的声明和调用被一些冗长的代码分隔开。 在这种情况下,代码的读者可能会错过变量声明,并假设 Console.WriteLine(str); 将输出从主构造函数参数接收到的 one

为避免混淆和潜在错误,请重命名局部变量。

public class MyTest { public MyTest() { var sample = new MySample("one"); } } public class MySample(string str) { void Print() { var str = "two"; Console.WriteLine(str); } }
最后修改日期: 2025年 9月 27日