Erreur du compilateur CS0542
Mise à jour : novembre 2007
Message d'erreur
'type défini par l'utilisateur' : les noms de membres doivent être différents de leur type englobant
'user-defined type' : member names cannot be the same as their enclosing type
Un nom a été utilisé plusieurs fois dans la même construction. Cette erreur pourrait être causée par le placement involontaire d'un type de retour sur un constructeur.
L'exemple suivant génère l'erreur CS0542 :
// CS0542.cs
class F
{
// Remove void from F() to resolve the problem.
void F() // CS0542, same name as the class
{
}
}
class MyClass
{
public static void Main()
{
}
}
Si votre classe est nommée 'Élément' et a un indexeur déclaré en tant que this, vous pouvez obtenir cette erreur. Un indexeur par défaut porte le nom 'Élément' dans le code émis, ce qui crée le conflit.
// CS0542b.cs
class Item
{
public int this[int i] // CS0542
{
get
{
return 0;
}
}
}
class CMain
{
public static void Main()
{
}
}