Aviso do compilador (nível 2) CS0279
'type name' não implementa o padrão 'pattern name'. 'Nome do método' é estático ou não público.
Há várias instruções em C# que dependem de padrões definidos, como foreach
e using
. Por exemplo, foreach
depende da classe de coleção que implementa o padrão enumerável. Este erro ocorre quando o compilador não consegue fazer a correspondência devido a um método ser declarado static
ou não public
. Os métodos em padrões devem ser instâncias de classes e ser públicos.
O exemplo a seguir gera CS0279:
// CS0279.cs
using System;
using System.Collections;
public class myTest : IEnumerable
{
IEnumerator IEnumerable.GetEnumerator()
{
yield return 0;
}
internal IEnumerator GetEnumerator()
{
yield return 0;
}
public static void Main()
{
foreach (int i in new myTest()) {} // CS0279
}
}
Comentários do .NET
O .NET é um projeto código aberto. Selecione um link para fornecer comentários: