コンパイラ エラー CS0844
宣言する前にローカル変数 'name' を使用することはできません。 ローカル変数の宣言によって、フィールド 'name' が非表示になります。
識別子は、所定のブロックで 1 つの意味のみを持つことができます。 クラス フィールドと同じ名前を持つローカル変数は、識別子の 2 番目の意味を導入することによって、フィールドを非表示にできます。 したがって、コンパイラは、メソッドでクラス フィールドを参照し、同じ名前でローカル変数を宣言すると、エラーを生成します。
このエラーを解決するには
this.num
を使用して、クラス フィールドを参照します。ローカル変数にクラス フィールドとは別の名前を付けます。
例
次のコードでは CS0844 が生成されます。
class Test
{
int num;
public void TestMethod()
{
num = 5; // CS0844
int num = 6;
}
public static int Main()
{
return 1;
}
}
エラーを修正するには、this.num
を使用してクラス フィールドを参照します
class Test
{
int num;
public void TestMethod()
{
this.num = 5; // Error fixed.
int num = 6;
}
public static int Main()
{
return 1;
}
}
エラーを修正するには、ローカル変数にクラス フィールドとは異なる名前を指定します
class Test
{
int num;
public void TestMethod()
{
num = 5; // Error fixed.
int num2 = 6;
}
public static int Main()
{
return 1;
}
}
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示