aviso do compilador (nível 2) CS0280

Mensagem de erro

'type' não implementa o padrão de nome do padrão. 'nome do método ' tem assinatura incorreta.

Duas instruções em translation from VPE for Csharp foreach e using, dependem de padrões predefinidos, "coleção" e "recurso" respectivamente. Este aviso ocorre quando o compilador não pode corresponder a um dessas instruções para seu padrão devido a assinatura incorreta do método.Por exemplo, o padrão de "coleta" requer que existe um método chamadoMoveNext que não usa nenhum parâmetro e retorna um boolean. Seu código pode conter um MoveNext método que possui um parâmetro ou talvez retorna um objeto.

O padrão de "recurso" eusing Forneça outro exemplo. O padrão de "recurso" requer oDispose método; se você definir uma propriedade com o mesmo nome, você receberá esse aviso.

Para resolver esse aviso, certifique-se de que sistema autônomo assinaturas de método no seu tipo coincidir com sistema autônomo assinaturas dos métodos correspondentes do padrão e certifique-se de que não há propriedades com o mesmo nome de um método necessário para o padrão.

Exemplo

O exemplo a seguir gera CS0280.

// CS0280.cs
using System;
using System.Collections;

public class ValidBase: IEnumerable
{
   IEnumerator IEnumerable.GetEnumerator()
   {
      yield return 0;
   }

   internal IEnumerator GetEnumerator()
   {
      yield return 0;
   }
}

class Derived : ValidBase
{
   // field, not method
   new public int GetEnumerator;
}

public class Test
{
   public static void Main()
   {
      foreach (int i in new Derived()) {}   // CS0280
   }
}