Ler em inglês

Partilhar via


Aviso do compilador (nível 1) CS1720

Expression sempre causará um System.NullReferenceException porque o valor padrão de 'generic type' é null

Se você escrever uma expressão envolvendo o padrão de uma variável de tipo genérica que é um tipo de referência (por exemplo, uma classe), esse erro ocorrerá. Considere a seguinte expressão:

default(T).ToString()  

Como T é um tipo de referência, seu valor padrão é nulo e, portanto, tentar aplicar o ToString método a ele lançará um NullReferenceExceptionarquivo .

Exemplo

A restrição de referência de classe no tipo T garante que T seja um tipo de referência.

O exemplo a seguir gera CS1720.

// CS1720.cs  
using System;  
public class Tester
{  
    public static void GenericClass<T>(T t1) where T : class
    {  
        Console.WriteLine(default(T).ToString());  // CS1720  
    }  
    public static void Main() {}  
}