Udostępnij za pośrednictwem


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:

  1. 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.
      }
    
  2. 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#)

Koncepcje

Podręcznik programowania C#