Errore del compilatore CS0542

Aggiornamento: novembre 2007

Messaggio di errore

'tipo definito dall'utente': i nomi dei membri non possono essere uguali a quelli del tipo di inclusione.
'user-defined type' : member names cannot be the same as their enclosing type

Un nome è stato utilizzato più volte nello stesso costrutto. L'errore potrebbe essere causato dall'inserimento involontario di un tipo restituito in un costruttore.

Il seguente codice di esempio genera l'errore 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()
   {
   }
}

Questo errore può venire visualizzato se si utilizza una classe denominata 'Elemento' contenente un indicizzatore dichiarato come this. Nel codice creato il nome 'Elemento' viene assegnato a un indicizzatore predefinito, provocando il conflitto.

// CS0542b.cs
class Item
{
   public int this[int i]  // CS0542
   {
      get
      {
         return 0;
      }
   }
}

class CMain
{
   public static void Main()
   {
   }
}