Ler em inglês

Compartilhar via


Erro do Compilador CS0411

Os argumentos de tipo do método "method" não podem ser inferidos do uso. Tente especificar explicitamente os argumentos de tipo.

Esse erro ocorrerá se você chamar um método genérico sem fornecer explicitamente os argumentos de tipo e o compilador não puder inferir quais são eles. Para evitar esse erro, adicione os argumentos de tipo pretendidos entre colchetes angulares.

Exemplo 1

O seguinte exemplo gera o erro CS0411:

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

Exemplo 2

Outros casos de erro possíveis incluem quando o parâmetro é null, que não tem informações 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  
    }  
}