Ler em inglês

Compartilhar via


Aviso do compilador (nível 2) CS0279

'type name' não implementa o padrão 'pattern name'. 'method name' é estático ou não público.

Há várias instruções no C# que dependem de padrões definidos, como foreach e using. Por exemplo, foreach depende da classe de coleção implementar o padrão enumerável. Esse erro ocorre quando o compilador não consegue fazer a correspondência devido ao fato de um método ser declarado static ou não public. Métodos em padrões são obrigatoriamente instâncias de classes e públicos.

Exemplo

O exemplo a seguir gera o erro 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  
    }  
}