Nullables

De Banane Atomic
Aller à la navigationAller à la recherche

Permet de rendre nullable des types qui ne le sont pas.

Csharp.svg
bool? b; // par défaut à null

b = null;
b.HasValue; // false
bool v = b.Value; // InvalidOperationException

b = false;
b.HasValue; // true
bool v = b.Value; // false

// GetType et is retourne le type sous-jacent
b.GetType(); // bool et pas bool?
b is bool // true
b is bool? // false

// test si un objet Type est de type Nullable
Type type = typeof(bool?);
if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(Nullable<>)) {…}
if (Nullable.GetUnderlyingType(type) != null) {…}

// obtenir le type sous-jacent
Type typeSousJacent = Nullable.GetUnderlyingType(type); // null si type n'est pas Nullable

Comment identifier un type Nullable