Avertissement du compilateur (niveau 1) CS1720
L’expression provoquera toujours un System.NullReferenceException, car la valeur par défaut de 'generic type' est 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 produit. Prenons l'expression suivante :
default(T).ToString()
Étant donné que 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 lève une NullReferenceException.
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’avertissement 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() {}
}
Commentaires sur .NET
.NET est un projet open source. Sélectionnez un lien pour fournir des commentaires :