好的,我使用可空类型仍然有点新鲜。
我正在为我的一个项目编写一个反射对象步行器,我正在设置反射属性的值,其值是从反射属性中检索的。
我检索到的值仍然是object
形式,它突然出现在我身上,因为我希望我的对象walker在找不到任何东西时返回null,(我想要抛出异常,但是我想要在出现问题时软失败。
无论如何,我设置/获取的一些值是decimal
bool
等......所以我明白我不应该设置一个不可空的值,但我意识到我直接我不知道如何从decimal
decimal?
如果属性im设置的类型是从ValueType
继承的,那么键入是否足够?
答案 0 :(得分:6)
以下代码将告诉您类型是否可以为空:
private bool IsNullableType(Type theType)
{
return theType.IsGenericType &&
theType.GetGenericTypeDefinition().Equals(typeof(Nullable<>));
}
答案 1 :(得分:0)
来自MSDN:
可空类型是
System.Nullable<T>
结构的实例。