Ler em inglês

Compartilhar via


Erro do Compilador CS0403

Não é possível converter nulo para o parâmetro de tipo "name" porque pode ser um tipo de valor não anulável. Em vez disso, considere usar o padrão ("T").

Você não pode atribuir nulo ao tipo desconhecido nomeado porque ele pode ser um tipo de valor, que não permite atribuição nula. Se a classe genérica não se destina a aceitar tipos de valor, use a restrição de tipo de classe. Se ela puder aceitar tipos de valor, como os tipos internos, você poderá substituir a atribuição para nulo pela expressão default(T), conforme mostrado no exemplo a seguir.

Exemplo

O exemplo a seguir gera o erro CS0403.

// CS0403.cs  
// compile with: /target:library  
class C<T>  
{  
   public void f()  
   {  
      T t = null;  // CS0403  
      T t2 = default(T);   // OK  
    }  
}  
  
class D<T> where T : class
{  
   public void f()  
   {  
      T t = null;  // OK  
    }  
}