Errore del compilatore CS1928

Aggiornamento: novembre 2007

Messaggio di errore

'Tipo' non contiene una definizione per 'metodo' e l'overload migliore del metodo di estensione 'metodo' presenta alcuni argomenti non validi.
'Type' does not contain a definition for 'method' and the best extension method overload 'method' has some invalid arguments.

Questo errore viene generato quando il compilatore non può trovare un membro di classe con il nome del metodo chiamato. Può trovare un metodo di estensione con quel nome, ma non con una firma che corrisponde ai tipi passati con la chiamata al metodo.

Per correggere l'errore

  • Passare i tipi che corrispondono a un metodo di estensione o un metodo della classe esistente.

Esempio

Nel codice seguente viene generato l'errore CS1928:

// cs1928.cs
class Test
{
    static void Main()
    {
        Test t = new Test();
        t.M("hi"); // CS1928
    }
}
static class Ext
{
    public static void M(this Test t, int i)
    {
    }
}

Questo errore spesso è accompagnato da CS1503: Argomento 'n': impossibile convertire da 'tipoA' a 'tipoB'.

Vedere anche

Riferimenti

Metodi di estensione (Guida per programmatori C#)