Avertissement du compilateur (niveau 1) CS1720
Mise à jour : novembre 2007
Message d'erreur
L'expression provoquera toujours un System.NullReferenceException, car la valeur par défaut de 'type générique' est null
Expression will always cause a System.NullReferenceException because the default value of 'generic type' is null
Si vous écrivez une expression qui implique la valeur par défaut d'une variable de type générique correspondant à un type référence (par exemple, une classe), cette erreur se produira. Prenons l'expression suivante :
default(T).ToString()
Puisque T est un type référence, sa valeur par défaut est Null ; par conséquent, si vous tentez de lui appliquer la méthode ToString, cela entraînera une NullReferenceException.
Exemple
La contrainte de référence de classe sur le type T garantit que T est un type référence.
L'exemple suivant génère l'erreur 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() {}
}