Обнуляемый тип не обнуляемый тип?

Я проводил некоторые тесты с обнуляемыми типами, и это не сработало так, как я ожидал:

int? testInt = 0;
Type nullableType = typeof(int?);
Assert.AreEqual(nullableType, testInt.GetType()); // not the same type

Это тоже не работает:

DateTime? test = new DateTime(434523452345);
Assert.IsTrue(test.GetType() == typeof(Nullable)); //FAIL 

DateTime? test = new DateTime(434523452345);
Assert.IsTrue(test.GetType() == typeof(Nullable<>)); //STILL FAIL

У меня вопрос, почему testInt.GetType () возвращает int, а typeof (int?) Возвращает истинный обнуляемый тип?

Ответы на вопрос(4)

Ваш ответ на вопрос