Leggere in inglese

Condividi tramite


Avviso del compilatore (livello 2) CS0278

'type' non implementa il modello 'pattern name'. 'method name' è ambiguo con 'method name'.

Molte istruzioni in C# si basano su modelli definiti, ad esempio foreach e using. Ad esempio, l'foreach istruzione si basa sulla classe di raccolta che implementa il modello "enumerabile".

L'avviso CS0278 potrebbe essere visualizzato quando il compilatore non riesce creare la corrispondenza corretta a causa di alcune ambiguità, ad esempio se per il modello "enumerabile" è necessario un metodo denominato MoveNexte nel codice sono contenuti due metodi denominati MoveNext. Il compilatore proverà a trovare un'interfaccia da usare. È tuttavia opportuno determinare la causa dell'ambiguità e correggerla.

Esempio

L'esempio seguente genera l'errore CS0278.

C#
// 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  
   }  
}