Leer en inglés

Compartir a través de


Error del compilador CS0411

Los argumentos de tipo para el método 'método' no se pueden inferir a partir del uso. Pruebe a especificar los argumentos de tipo explícitamente.

Este error se produce si se llama a un método genérico sin proporcionar explícitamente los argumentos de tipo y el compilador no es capaz de deducir cuáles se pretende usar. Para evitar este error, agregue los argumentos de tipo que quiere usar entre corchetes angulares.

Ejemplo 1

El ejemplo siguiente genera la advertencia CS0411:

// CS0411.cs  
class C  
{  
    void G<T>()  
    {  
    }  
  
    public static void Main()  
    {  
        G();  // CS0411  
        // Try this instead:  
        // G<int>();  
    }  
}  

Ejemplo 2

Otros casos posibles en los que puede producirse este error incluyen cuando el parámetro es null, puesto que no tiene ninguna información de tipo:

// CS0411b.cs  
class C  
{  
    public void F<T>(T t) where T : C
    {  
    }  
  
    public static void Main()  
    {  
        C c = new C();  
        c.F(null);  // CS0411  
    }  
}