Sdílet prostřednictvím


Zabalení typů s povolenou hodnotou Null (Průvodce programováním v C#)

Pokud je objekt hodnotu null, jsou pouze boxed objekty na základě typů s možnou hodnotou Null.Pokud HasValue je false, odkaz na objekt je přiřazen k null namísto boxerská.Příklad:

bool? b = null;
object o = b;
// Now o is null.

Pokud je objekt nenulové--Pokud HasValue je true – pak boxing dojde, ale je pouze základní typ objektu s možnou hodnotou NULL je založena na boxed.Boxing typ s možnou hodnotou Null nenulovou hodnotu pole není typ hodnoty, Nullable který obtéká typ hodnoty.Příklad:

bool? b = false;
int? i = 44;
object bBoxed = b; // bBoxed contains a boxed bool.
object iBoxed = i; // iBoxed contains a boxed int.

Jsou stejné jako typy Structure boxerská vytvořeny dva objekty krabici.A stejně jako typy Structure krabici, mohou být variant do typů s možnou hodnotou Null, jako v následujícím příkladu:

bool? b2 = (bool?)bBoxed;
int? i2 = (int?)iBoxed;

Poznámky

Chování s možnou hodnotou Null typy při boxed má dvě výhody:

  1. S možnou hodnotou Null objektů a jejich protějškem krabici lze testovat null:

      bool? b = null;
      object boxedB = b;
      if (b == null)
      {
        // True.
      }
      if (boxedB == null)
      {
        // Also true.
      }
    
  2. Krabici s možnou hodnotou Null typy plně podporují funkce základní typ:

      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();
    

Viz také

Úkoly

Postupy: Identifikace typu s povolenou hodnotou Null (Průvodce programováním v C#)

Referenční dokumentace

Typy s povolenou hodnotou Null (Průvodce programováním v C#)

Koncepty

Průvodce programováním v C#