Partager via


Avertissement du compilateur (niveau 2) CS0278

Mise à jour : novembre 2007

Message d'erreur

'type' n'implémente pas le modèle 'nom de modèle'. 'nom de méthode' est ambigu avec 'nom de méthode'.
'type' does not implement the 'pattern name' pattern. 'method name' is ambiguous with 'method name'.

Dans le langage C#, plusieurs instructions s'appuient sur des modèles définis, comme foreach et using. Par exemple, foreach s'appuie sur la classe de collection qui implémente le modèle « dénombrable ».

L'erreur CS0278 peut se produire si le compilateur est incapable de faire la correspondance en raison d'ambiguïtés. Par exemple, le modèle « dénombrable » requiert une méthode appelée MoveNext et votre code peut contenir deux méthodes appelées MoveNext. Le compilateur essaiera de trouver une interface à utiliser, mais nous vous conseillons de déterminer la cause de l'ambiguïté et de la résoudre.

Pour plus d'informations, consultez Comment : accéder à une classe de collection à l'aide de foreach (Guide de programmation C#).

Exemple

L'exemple suivant génère l'erreur 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
   }
}