Ler em inglês

Partilhar via


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.

Exemplo

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  
    }  
}