在运行时,是否有可能将只能确定为非空的值类型转换为可空类型?换句话说:
public Type GetNullableType(Type t)
{
if (t.IsValueType)
{
return typeof(Nullable<t>);
}
else
{
throw new ArgumentException();
}
}
显然,return
行会出现错误。有没有办法解决这个问题?Type.MakeGenericType
方法似乎很有希望,但我不知道如何获取表示Nullable<T>
的未指定泛型Type
对象。有什么想法吗?
Nullable<Nullable<int>>
等-考虑:如果t == typeof(float?)
(它具有.ValueType === true
), 该怎么办? - Marc Gravell