我正在尝试确定类型参数是否为Nullable。
public T Get<T>(int index)
{
var none=default(T);
var t = typeof(T);
BaseVariable v = this[index].Var;
if (T is Nullable) //compiler error
{
if (v == ... )
{
return none;
}
}
//....
}
我该怎么做?我尝试过t == typeof(Nullable)
,但这总是导致错误。
我想要发生的事情是foo.Get<bool?>(1)
有时会为空。
答案 0 :(得分:39)
您可以使用Nullable.GetUnderlyingType
:
var t = typeof(T);
// ...
if (Nullable.GetUnderlyingType(t) != null)
{
// T is a Nullable<>
}