コンパイラ エラー CS0841
宣言する前にローカル変数 'name' を使用することはできません。
変数を使用するには、先にその変数を宣言する必要があります。
次の例では、CS0841 が生成されます。
// cs0841.cs
using System;
public class Program
{
public static void Main()
{
j = 5; // CS0841
int j;
}
}
エラーが発生した行の前に、変数の宣言を移動します。
using System;
public class Program
{
public static void Main()
{
int j;
j = 5;
}
}
次の例の意図は、parameter
と MyEnum.A
を比較することです。 ローカル変数は同じ型名で後で宣言されるため、型 MyEnum
をシャドウし、このメソッドの MyEnum
によって enum
が参照されなくなりましたが、宣言されたローカル変数を参照します。
using System;
public enum MyEnum
{
A, B, C
}
public class C
{
public void M(MyEnum parameter)
{
// error CS0841: Cannot use local variable 'MyEnum' before it is declared
if (parameter == MyEnum.A)
{
return;
}
// Change the variable to 'myEnum' to avoid shadowing the 'MyEnum' type.
// This change also aligns with the C# coding conventions.
var MyEnum = parameter;
Console.WriteLine(MyEnum.ToString());
}
}
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET に関するフィードバック
.NET はオープンソース プロジェクトです。 フィードバックを提供するにはリンクを選択します。