Partager via


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

Voir aussi

Référence

Méthodes d'extension (Guide de programmation C#)