Errore del compilatore CS0841
Non è possibile usare la variabile locale 'name' prima che sia dichiarata.
Prima di poter essere usata, una variabile deve essere dichiarata.
L'esempio seguente genera l'errore CS0841:
// cs0841.cs
using System;
public class Program
{
public static void Main()
{
j = 5; // CS0841
int j;
}
}
Spostare la dichiarazione di variabile prima della riga in cui si verifica l'errore.
using System;
public class Program
{
public static void Main()
{
int j;
j = 5;
}
}
Nell'esempio seguente, l’intento era quello di confrontare parameter
con MyEnum.A
. Poiché una variabile locale dichiarata successivamente con lo stesso nome di tipo, nasconde il tipo MyEnum
e MyEnum
in questo metodo non fa più riferimento a enum
, ma fa riferimento alla variabile locale dichiarata.
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 su .NET
.NET è un progetto di open source. Selezionare un collegamento per fornire feedback: