Dot-Net

確定泛型參數是否為 Nullable 類型

  • March 3, 2011

我有以下 VB.NET 函式,例如:

Public Function MyFunction (Of TData) (ByVal InParam As Integer) As TData

End Sub

如何在函式中確定是否TData為 NULLable 類型?

一種方法是:

If Nullable.GetUnderlyingType(GetType(TData)) <> Nothing

…至少,C# 是:

if (Nullable.GetUnderlyingType(typeof(TData)) != null)

那是假設您要詢問它是否是可為空的值類型。如果您詢問它是可空值類型還是類,那麼 C# 版本將是:

if (default(TData) == null)

但我不確定簡單的 VB 翻譯是否可以在那里工作,因為 VB 中的“Nothing”略有不同。

引用自:https://stackoverflow.com/questions/5181494