Lire en anglais

Partager via


Avertissement du compilateur (niveau 2) CS0278

'type' n’implémente pas le modèle 'nom_modèle'. 'nom_méthode' est ambigu avec 'nom_méthode'.

Il existe plusieurs instructions en langage C# qui reposent sur des modèles définis, telles que foreach et using. Par exemple, l’instruction foreach repose sur la classe de collection qui implémente le modèle « énumérable ».

L’erreur CS0278 peut se produire si le compilateur ne peut pas établir la correspondance en raison d’ambiguïtés. Par exemple, le modèle « énumérable » exige la présence d’une méthode appelée MoveNext. Or, il se peut que votre code contienne deux méthodes appelées MoveNext. Le compilateur tente alors de trouver une interface à utiliser, mais il est recommandé de déterminer et résoudre la cause de l’ambiguïté.

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