Lire en anglais

Partager via


Erreur du compilateur CS0453

Le type 'nom_type' doit être un type valeur non Nullable afin d’être utilisé comme paramètre 'nom_paramètre' dans le type ou la méthode générique 'identificateur générique'

Cette erreur se produit lorsque vous utilisez un argument de type non-valeur lors de l'instanciation d'un type générique ou d'une méthode soumise à la contrainte de valeur. Elle peut également se produire quand vous utilisez un argument de type valeur Nullable. Regardez les deux dernières lignes de code de l’exemple suivant.

Exemple

Le code suivant génère cette erreur.

// CS0453.cs  
using System;  
public class HV<S> where S : struct { }

// CS0453: string is not a value type
public class H1 : HV<string> { }

// CS0453: H1 is a class, not a struct
public class H2 : HV<H1> { }

// CS0453: HV is based on a class, not a struct
public class H3<S> : HV<S> where S : class { }
public class H4<S> : HV<S> where S : struct { } // OK

// CS0453: HV accepts a nullable int type
public class H4 : HV<int?> { }

// CS0453: HV is based on Nullable type of int
public class H5 : HV<Nullable<Nullable<int>>> { }

Voir aussi