可能重复:
Nullable type is not a nullable type?
Why GetType returns System.Int32 instead of Nullable<Int32>?
我希望((int?) 1).GetType()
返回typeof(int?)
,但事实证明它返回typeof(int)
:
bool a = ((int?)1).GetType() == typeof(int?); // a is false
bool b = ((int?)1).GetType() == typeof(int); // b is true
仍然,((int?) 1).HasValue
之类的代码编译并运行得很好。
为什么将int
转换为int?
会返回int
?
请注意,如果我将常量(1
)替换为某个int
- 变量,这也适用。