Error del compilador CS1928

Actualización: noviembre 2007

Mensaje de error

'Tipo' no contiene una definición para 'método' y la mejor sobrecarga del método de extensión 'método' tiene algunos argumentos no válidos.
'Type' does not contain a definition for 'method' and the best extension method overload 'method' has some invalid arguments.

Este error se genera cuando el compilador no encuentra un miembro de clase con el nombre del método al que ha llamado. Puede encontrar un método de extensión con ese nombre, pero no con una firma que coincida con los tipos que pasó con su llamada al método.

Para corregir este error

  • Pase tipos que coincidan con un método de extensión o método de clase existente.

Ejemplo

El código siguiente genera el error 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)
    {
    }
}

Este error va acompañado con frecuencia del error CS1503: Argumento 'n': no se puede convertir de 'tipoA' a 'tipoB'.

Vea también

Referencia

Métodos de extensión (Guía de programación de C#)