Sdílet prostřednictvím


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

Můžete použít C# typeof operátor vytvořit Type objekt představující typ s možnou hodnotou NULL:

System.Type type = typeof(int?);

Můžete také použít třídy a metody System.Reflection obor názvů pro generování Type objekty, které představují typy s možnou hodnotou Null.Však při pokusu získat informace o typu proměnných s možnou hodnotou Null za běhu pomocí GetType metoda nebo is operátor, výsledek je Type objekt, který představuje základní typ s možnou hodnotou není NULL zadejte samotný.

Volání GetType na s možnou hodnotou Null typu způsobuje boxerská operaci provést, když typ implicitně převeden na Object.Proto GetType vždy vrátí Type objekt, který představuje základní typ s možnou hodnotou Null typu.

  int? i = 5;
  Type t = i.GetType();
  Console.WriteLine(t.FullName); //"System.Int32"

C# je operátor také pracuje na základní typ s možnou hodnotou Null a.Proto nelze použít is zjistit, zda je proměnná typu s možnou hodnotou Null.Následující příklad ukazuje, že is operátor zachází s možnou hodnotou Null <int> Proměnná, jako int.

  static void Main(string[] args)
  {
    int? i = 5;
    if (i is int) // true
      //…
  }

Příklad

Použijte následující kód určit, zda Type objektu představuje typ s možnou hodnotou Null.Nezapomeňte, že tento kód vždy vrátí hodnotu false, pokud Type volání vrátil objekt GetType, jak je popsáno dříve v tomto tématu.

if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(Nullable<>)) {…}

Viz také

Referenční dokumentace

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

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