好的,我对使用可空类型还是有点陌生。
我正在为我的一个项目编写一个反射对象 walker,我正在使用我从反射属性检索到的值来设置反射属性的值。
我检索到的值仍然是 object
形式,这让我恍然大悟,因为我希望我的 object walker 在找不到东西时返回 null,(我想过扔一个异常(exception),但我希望它在出现问题时软失败)。
无论如何,我设置/获取的一些值是 decimal
bool
等等...所以我突然意识到我不应该设置一个不可空的值,但我意识到我不知道如何区分 decimal
和 decimal?
如果属性 im 设置的 Type 是从 ValueType
继承的,是否就足够了?
最佳答案
下面的代码会告诉你一个类型是否可以为空:
private bool IsNullableType(Type theType)
{
return theType.IsGenericType &&
theType.GetGenericTypeDefinition().Equals(typeof(Nullable<>));
}
关于c# - 可为空?检测它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2795402/