Typy Nullable boksie (C# Programming Guide)
Na podstawie nullable typy obiektów są tylko ramkach, jeśli obiekt jest inne niż null.Jeśli HasValue jest false, odwołanie do obiektu jest przypisany do null zamiast boksie.Na przykład:
bool? b = null;
object o = b;
// Now o is null.
Jeśli obiekt jest niezerowe--Jeśli HasValue jest true --następnie boks występuje, ale tylko podstawowy typ obiektu NULL jest oparty na jest ramkach.Boks typu NULL wartość niezerową pola Typ wartości, nie System.Nullable<T> który otacza typu wartości.Na przykład:
bool? b = false;
int? i = 44;
object bBoxed = b; // bBoxed contains a boxed bool.
object iBoxed = i; // iBoxed contains a boxed int.
Dwóch obiektów prostokątnych są identyczne z tymi utworzone przez typów nullable boksie.I podobnie jak-nullable typów ramkach, mogą być rozpakowanych na typy nullable, jak w poniższym przykładzie:
bool? b2 = (bool?)bBoxed;
int? i2 = (int?)iBoxed;
Uwagi
Zachowanie nullable typy ramkach ma dwie zalety:
Mogą być badane Nullable obiektów i ich ramkach odpowiednika dla wartości null:
bool? b = null; object boxedB = b; if (b == null) { // True. } if (boxedB == null) { // Also true. }
Boxed nullable typów w pełni obsługują funkcje Typ podstawowy:
double? d = 44.4; object iBoxed = d; // Access IConvertible interface implemented by double. IConvertible ic = (IConvertible)iBoxed; int i = ic.ToInt32(null); string str = ic.ToString();
Zobacz też
Zadania
Jak: określenie typu null (Podręcznik programowania C#)
Informacje
Typy Nullable (Podręcznik programowania C#)