Avertissement du compilateur (niveau 2) CS0280
'type' n’implémente pas le modèle 'nom_modèle'. La signature de 'method name' est incorrecte.
Deux instructions en langage C#, foreach et using, s’appuient sur des modèles prédéfinis, « collection » et « ressource » respectivement. Cet avertissement se produit quand le compilateur ne peut pas faire correspondre l’une de ces instructions à son modèle en raison d’une signature incorrecte d’une méthode. Par exemple, le modèle « collection » nécessite la présence d’une méthode appelée MoveNext qui ne prend aucun paramètre et retourne un boolean
. Votre code peut contenir une méthode MoveNext qui a un paramètre ou qui retourne peut-être un objet.
Le modèle « ressource » et using
fournissent un autre exemple. Le modèle « ressource » nécessite la méthode Dispose ; si vous définissez une propriété portant le même nom, vous obtenez cet avertissement.
Pour y remédier, assurez-vous que les signatures de méthode dans votre type correspondent aux signatures des méthodes correspondantes dans le modèle et assurez-vous de n’avoir aucune propriété portant le même nom qu’une méthode requise par le modèle.
L’exemple suivant génère l’avertissement CS0280.
// CS0280.cs
using System;
using System.Collections;
public class ValidBase: IEnumerable
{
IEnumerator IEnumerable.GetEnumerator()
{
yield return 0;
}
internal IEnumerator GetEnumerator()
{
yield return 0;
}
}
class Derived : ValidBase
{
// field, not method
new public int GetEnumerator;
}
public class Test
{
public static void Main()
{
foreach (int i in new Derived()) {} // CS0280
}
}
Commentaires sur .NET
.NET est un projet open source. Sélectionnez un lien pour fournir des commentaires :