Partager via


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()
   {
   }
}