c# - 可为空?检测它们

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

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

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

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

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

如果属性 im 设置的 Type 是从 ValueType 继承的,是否就足够了?

最佳答案

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

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

关于c# - 可为空?检测它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2795402/

相关文章:

c# - 如何识别我的代码何时在 C# 中进行测试?

c# - 加载多个动态服务及其依赖服务的最佳实践

c# - 反射获取对象属性以对列表进行排序

java - 调试期间调用 MethodHandle

c# - 在不能保证获取锁的顺序时避免死锁

c# - 如何将此 EF Mock 设置代码编写为可重用的通用样板?

c# - 并行分块与顺序分块文件上传

c# - 如何更改 DateTime 对象在 DataGridView 中的显示方式

c# - C# 结构与元组中的值语义

c# - 属性(property)注入(inject)是否被认为是不好的?