Compilerfehler CS0841
Die lokale Variable "Name" kann erst verwendet werden, nachdem sie deklariert wurde.
Eine Variable muss deklariert werden, bevor sie verwendet werden kann.
Im folgenden Beispiel wird CS0841 generiert:
// cs0841.cs
using System;
public class Program
{
public static void Main()
{
j = 5; // CS0841
int j;
}
}
Verschieben Sie die Variablendeklaration vor die Zeile, in der der Fehler aufgetreten ist.
using System;
public class Program
{
public static void Main()
{
int j;
j = 5;
}
}
Im folgenden Beispiel verglich die Absicht parameter
mit MyEnum.A
. Da später eine lokale Variable mit demselben Typnamen deklariert ist, führt sie ein Shadowing für den Typ MyEnum
durch, und MyEnum
in dieser Methode verweist nicht mehr auf enum
, sondern auf die deklarierte lokale Variable.
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());
}
}
Feedback zu .NET
.NET ist ein Open Source-Projekt. Wählen Sie einen Link aus, um Feedback zu geben: