代码检查:局部变量隐藏主构造函数参数
在下面的示例中,在 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日