代码检查:局部变量隐藏主构造函数参数
在下面的示例中,在 打印() 方法中声明的局部变量 str 与主构造函数参数同名,但仍然可以清楚地看到 Console.WriteLine(str); 将输出 两个。
现在假设在 打印() 中 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月 26日