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é.
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
}
}
Commentaires sur .NET
.NET est un projet open source. Sélectionnez un lien pour fournir des commentaires :