【问题标题】:Nullables? Detecting them空值?检测它们
【发布时间】:2010-05-08 19:54:38
【问题描述】:

好的,我对使用可空类型还是有点陌生​​。

我正在为我的一个项目编写一个反射对象walker,我正在使用我从反射属性中检索到的值来设置反射属性的值。

我检索到的值仍然是object 形式,这让我恍然大悟,因为我希望我的 object walker 在找不到东西时返回 null,(我想过抛出一个异常,但我希望它在出现问题时软失败)。

无论如何,我设置/获取的一些值是 decimal bool 等...所以我突然意识到我不应该设置一个不可为空的值,但我意识到我直接不知道如何区分 decimaldecimal?

如果属性im设置的Type继承自ValueType是否足够key?

【问题讨论】:

  • 我不太清楚你在问什么,但你应该知道object 永远不会是int?decimal?。如果您的 Nullable<> 没有值,它将只是 null

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


【解决方案1】:

下面的代码会告诉你一个类型是否可以为空:

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

【讨论】:

【解决方案2】:

来自MSDN

可空类型是System.Nullable&lt;T&gt; 结构的实例。

【讨论】:

    猜你喜欢
    • 2011-02-28
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 2013-12-30
    • 2021-07-27
    • 2020-08-04
    • 2013-12-11
    • 2019-05-23
    相关资源
    最近更新 更多