Ler em inglês

Compartilhar via


Aviso do compilador (nível 1) CS1720

Expressão sempre causará uma System.NullReferenceException porque o valor padrão de "generic type" é nulo

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

C#
default(T).ToString()  

Como T é um tipo de referência, o valor padrão dele é nulo e, portanto, tentar aplicar o método ToString a ele vai gerar NullReferenceException.

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 o erro CS1720.

C#
// 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() {}  
}