Advertencia del compilador (nivel 1) CS1720

Actualización: noviembre 2007

Mensaje de error

La expresión siempre producirá System.NullReferenceException porque el valor predeterminado de 'tipo genérico' es null
Expression will always cause a System.NullReferenceException because the default value of 'generic type' is null

Si escribe una expresión que incluye el valor predeterminado de una variable de tipo genérico y cuyo tipo es de referencia (por ejemplo, una clase), se producirá este error. Observe la siguiente expresión:

default(T).ToString()

Puesto que T es un tipo de referencia, su valor predeterminado es null y, al intentar para aplicarle el método ToString, producirá una excepción NullReferenceException.

Ejemplo

La restricción de referencia de clase sobre el tipo T garantiza que T sea un tipo de referencia.

El código siguiente genera la advertencia 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() {}
}