Errore del compilatore CS1929

Aggiornamento: novembre 2007

Messaggio di errore

Argomento dell'istanza: impossibile convertire da 'tipoA' a 'tipoB'.
Instance argument: cannot convert from 'typeA' to 'typeB'.

Questo errore viene generato quando si tenta di richiamare un metodo di estensione da una classe non estesa. Nell'esempio riportato, il metodo di estensione è definito per la classe derivata A, ma non per la classe di base B.

Per correggere l'errore

  • Creare un nuovo metodo di estensione per il tipo in cui è necessario richiamarlo oppure passare la chiamata a un oggetto del tipo esteso dal metodo esistente.

Esempio

Nell'esempio seguente vengono generati gli errori CS1928 e 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
        }
    }

Vedere anche

Riferimenti

Metodi di estensione (Guida per programmatori C#)