Jak: identifikovat typ s možnou hodnotou Null (Příručka programování 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 možnou hodnotou Null (Příručka programování C#)
Typy boxerská s možnou hodnotou Null (C# programování Guide)