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:
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.
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.
// 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() {}
}
Comentários do .NET
O .NET é um projeto código aberto. Selecione um link para fornecer comentários: