Partager via


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