我想检查一个类型是否是原始类型并使用了以下代码:
return type.IsValueType && type.IsPrimitive;
只要原语不可为空,这就可以正常工作。例如 int?,如何检查类型是否为可空原始类型? (仅供引用:int 上的 type.IsPrimitive == false
?)
最佳答案
来自 MSDN:
The primitive types are Boolean, Byte, SByte, Int16, UInt16, Int32, UInt32, Int64, UInt64, IntPtr, UIntPtr, Char, Double, and Single.
所以基本上你应该期待Nullable<Int32>
不是原始类型。
你可以使用 Nullable.GetUnderlyingType
“提取”Int32
来自 Nullable<Int32>
.
关于c# - IsPrimitive 不包括可为空的原始值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20973901/