Erreur du compilateur CS1929
Mise à jour : novembre 2007
Message d'erreur
Argument d'instance : impossible de convertir 'typeA' en 'typeB'.
Instance argument: cannot convert from 'typeA' to 'typeB'.
Cette erreur est générée lorsque vous tentez d'appeler une méthode d'extension à partir d'une class qu'elle n'étend pas. Dans l'exemple suivant, la méthode d'extension est définie pour la classe dérivée A, mais pas pour la classe de base B.
Pour corriger cette erreur
- Créez une méthode d'extension pour le type dans lequel vous devez l'appeler ou placez l'appel dans un objet du type étendu par la méthode existante.
Exemple
Le code suivant génère les erreurs CS1928 et CS1929 :
// cs1929.cs
using System.Linq;
using System.Collections;
static class Ext
{
public static void ExtMethod(this A a)
{
}
}
class A : B
{
}
class B
{
static void Main()
{
B b = new B();
b.ExtMethod(); // CS1929
}
}