コードインスペクション: ローカル変数がプライマリコンストラクターのパラメーターを隠しています
以下の例では、 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);
}
}
2026 年 6 月 12 日