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