Erreur du compilateur CS0135
Mise à jour : novembre 2007
Message d'erreur
Conflit entre 'déclaration1' et la déclaration 'déclaration2'
'declaration1' conflicts with the declaration 'declaration2'
Le compilateur ne permet pas le masquage de noms, qui génère souvent des erreurs de logique dans votre code.
Exemple
L'exemple suivant génère l'erreur CS0135 :
// CS0135.cs
public class MyClass2
{
public static int i = 0;
public static void Main()
{
{
int i = 4;
i++;
}
i = 0; // CS0135
}
}
Issu de Spécifications du langage C#, Section 7.5.2.1 :
Pour chaque occurrence d'un identificateur donné en tant que simple-name dans une expression ou un déclarateur, dans l'espace de déclaration de variable locale (§CNDJ6nn5us4RjIIAqgBLqQsCAAAACAAAAA4AAABfAFIAZQBmADQANgAxADYAMgAyADEAMwA4AAAA REF _Ref461622138 \r \h 3.3) englobant immédiatement cette occurrence, toute autre occurrence du même identificateur en tant que simple-name dans une expression ou un déclarateur doit faire référence à la même entité. Cette règle garantit que la signification d'un nom est toujours la même dans un bloc donné, un bloc switch, une instruction for, foreach ou using ou une fonction anonyme.