Partager via


Classe System.Nullable

Cet article vous offre des remarques complémentaires à la documentation de référence pour cette API.

La Nullable classe prend en charge les types valeur qui peuvent être affectés null.

Un type est dit nullable s’il peut être affecté à une valeur ou peut être affecté null, ce qui signifie que le type n’a aucune valeur. Par défaut, tous les types de référence, tels que String, sont nullables, mais tous les types valeur, tels que Int32, ne sont pas.

Dans C# et Visual Basic, vous marquez un type valeur comme nullable à l’aide de la ? notation après le type valeur. Par exemple, int? en C# ou Integer? en Visual Basic déclare un type de valeur entière qui peut être affecté null.

La Nullable classe fournit une prise en charge complémentaire de la Nullable<T> structure. La Nullable classe prend en charge l’obtention du type sous-jacent d’un type Nullable, ainsi que les opérations de comparaison et d’égalité sur les paires de types nullables dont le type valeur sous-jacent ne prend pas en charge les opérations de comparaison et d’égalité génériques.

Boxing et unboxing

Lorsqu’un type Nullable est boxé, le Common Language Runtime boxe automatiquement la valeur sous-jacente de l’objet Nullable<T> , et non l’objet Nullable<T> lui-même. Autrement dit, si la HasValue propriété est true, le contenu de la Value propriété est boxé.

Si la HasValue propriété d’un type Nullable est false, le résultat de l’opération de boxe est null. Lorsque la valeur sous-jacente d’un type Nullable n’est pas boxée, le Common Language Runtime crée une structure Nullable<T> initialisée avec la valeur sous-jacente.