Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Non è possibile usare la variabile locale 'name' prima che sia dichiarata.
Prima di poter essere usata, una variabile deve essere dichiarata.
Esempio di variabile usata prima della dichiarazione
L'esempio seguente genera l'errore CS0841:
// cs0841.cs
using System;
public class Program
{
public static void Main()
{
j = 5; // CS0841
int j;
}
}
Correggere l'errore spostando la dichiarazione prima dell'utilizzo
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;
}
}
Esempio di ombreggiatura di una variabile di un tipo
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());
}
}