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.
Aggiornamento: novembre 2007
Messaggio di errore
Una variabile locale denominata 'var' non può essere dichiarata in quest'ambito perché darebbe un significato diverso a 'var', che è già utilizzato in un ambito 'padre o corrente/figlio' per identificare qualcos'altro.
A local variable named 'var' cannot be declared in this scope because it would give a different meaning to 'var', which is already used in a 'parent or current/child' scope to denote something else
Una dichiarazione di variabile nasconde un'altra dichiarazione che altrimenti si troverebbe nell'ambito corrente. Rinominare la variabile dichiarata nella riga che ha generato l'errore CS0136.
Esempio
Il seguente codice di esempio genera l'errore CS0136:
// CS0136.cs
namespace MyNamespace
{
public class MyClass
{
public static void Main()
{
int i = 0;
{
char i = 'a'; // CS0136, hides int i
}
i++;
}
}
}
Da Specifiche del linguaggio C#, sezione 7.5.2.1:
Per ogni occorrenza di un identificatore specificato come nome semplice in un'espressione o un dichiaratore, all'interno dello spazio della dichiarazione di variabile locale (§CNDJ6nn5us4RjIIAqgBLqQsCAAAACAAAAA4AAABfAFIAZQBmADQANgAxADYAMgAyADEAMwA4AAAA REF _Ref461622138 \r \h 3.3) che include immediatamente quell'occorrenza, ogni altra occorrenza dello stesso identificatore come nome semplice in un'espressione o dichiaratore deve fare riferimento alla stessa entità. Questa regola assicura che il significato di un nome sia sempre lo stesso all'interno di un blocco specificato, un blocco switch, un'istruzione for, foreach o using o una funzione anonima.