Ler em inglês

Partilhar via


Aviso do compilador (nível 2) CS0278

'type' não implementa o padrão 'pattern name'. 'nome do método' é ambíguo com 'nome do método'.

Há várias instruções em C# que dependem de padrões definidos, como foreach e using. Por exemplo, a foreach instrução depende da classe de coleção que implementa o padrão "enumerável".

CS0278 pode ocorrer se o compilador é incapaz de fazer a correspondência devido a ambiguidades. Por exemplo, o padrão "enumerável" requer que haja um método chamado MoveNext, e seu código pode conter dois métodos chamados MoveNext. O compilador tentará encontrar uma interface para usar, mas é recomendável que você determine e resolva a causa da ambiguidade.

Exemplo

O exemplo a seguir gera CS0278.

// CS0278.cs  
using System.Collections.Generic;  
public class myTest
{  
   public static void TestForeach<W>(W w)
      where W: IEnumerable<int>, IEnumerable<string>  
   {  
      foreach (int i in w) {}   // CS0278  
   }  
}