为什么((int?)1).GetType()返回typeof(int)?

时间:2012-09-10 12:01:54

标签: c# .net .net-4.0 nullable

  

可能重复:
  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 - 变量,这也适用。

0 个答案:

没有答案