Aviso do compilador (nível 2) CS0280
'type' não implementa o padrão 'pattern name'. 'nome do método' tem a assinatura errada.
Duas instruções em C#, foreach e using, dependem de padrões predefinidos, "collection" e "resource", respectivamente. Esse aviso ocorre quando o compilador não pode corresponder uma dessas instruções ao seu padrão devido à assinatura incorreta de um método. Por exemplo, o padrão "collection" requer que haja um método chamado MoveNext que não usa parâmetros e retorna um boolean
arquivo . Seu código pode conter um MoveNext método que tem um parâmetro ou talvez retorna um objeto.
O padrão "recurso" e using
fornecer outro exemplo. O padrão "recurso" requer o Dispose método, se você definir uma propriedade com o mesmo nome, receberá esse aviso.
Para resolver esse aviso, verifique se as assinaturas de método em seu tipo correspondem às assinaturas dos métodos correspondentes no padrão e se você não tem propriedades com o mesmo nome de um método exigido pelo padrão.
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
}
}
Comentários do .NET
O .NET é um projeto código aberto. Selecione um link para fornecer comentários: