CS0411 de erro do compilador

Mensagem de erro

Os argumentos de tipo para o método 'method' não podem ser deduzidos com o uso.Tente especificar os argumentos de tipo explicitamente.

Este erro ocorre se você chama um método genérico sem fornecer explicitamente os argumentos de tipo e o compilador não é possível inferir os argumentos de tipo destinam-se.Para evitar esse erro, adicione os argumentos de tipo pretendido colchetes angulares.

Exemplo

O exemplo a seguir gera CS0411:

// CS0411.cs
class C
{
    void G<T>()
    {
    }

    public static void Main()
    {
        G();  // CS0411
        // Try this instead:
        // G<int>();
    }
}

Outros casos de erro possível incluem quando o parâmetro é null, que não tem tipo de informações:

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