Nullables?检测它们

时间:2010-05-08 19:54:39

标签: c# .net reflection .net-2.0 nullable

好的,我使用可空类型仍然有点新鲜。

我正在为我的一个项目编写一个反射对象步行器,我正在设置反射属性的值,其值是从反射属性中检索的。

我检索到的值仍然是object形式,它突然出现在我身上,因为我希望我的对象walker在找不到任何东西时返回null,(我想要抛出异常,但是我想要在出现问题时软失败。

无论如何,我设置/获取的一些值是decimal bool等......所以我明白我不应该设置一个不可空的值,但我意识到我直接我不知道如何从decimal

告诉decimal?

如果属性im设置的类型是从ValueType继承的,那么键入是否足够?

2 个答案:

答案 0 :(得分:6)

以下代码将告诉您类型是否可以为空:

private bool IsNullableType(Type theType)
{
    return theType.IsGenericType && 
           theType.GetGenericTypeDefinition().Equals(typeof(Nullable<>));
}

答案 1 :(得分:0)

来自MSDN

  

可空类型是System.Nullable<T>结构的实例。