Nullables
Apparence
Permet de rendre nullable des types qui ne le sont pas.
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
|