c# - IsPrimitive 不包括可为空的原始值

标签 c# types primitive

我想检查一个类型是否是原始类型并使用了以下代码:

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/

相关文章:

c# - MySqlBulkLoader 未导入第一列

haskell - Haskell 中类型的模式匹配

java - 初始化基元数组

java - 原始数组初始化没有值?

c# - 将不同类型字典的重载合并到一个函数中

c# - 在 wse 中使用自己的异常,而不仅仅是 SoapException

C# 在泛型类中调用方法

dart - 是否有比较通用静态 Dart 类型 (DartType) 的简单方法?

c - 默认情况下 char 有符号还是无符号?

javascript - 为什么这不能是原始的?