CS0542 de erro do compilador

Mensagem de erro

'tipo definido pelo usuário': nomes de membro não podem ser o mesmo que seu tipo delimitador

Mais de uma vez, foi usado um nome no mesma a construção.Este erro pode ser causado colocando inadvertidamente um tipo de retorno em um construtor.

O exemplo a seguir gera 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()
   {
   }
}

Se sua classe é nomeada 'Item' e tem um indexador declarado sistema autônomo this, este erro poderá ocorrer. Um indexador padrão será atribuído o nome 'Item' no código emitido, criando o conflito.

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

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