0

可能重复:
.NET:如何获取空对象的类型?

基本上,我希望以下代码之一在没有空引用错误的情况下工作:

int? i1 = default(int?);
int? i2 = new Nullable<Int32>();
int? i3 = new int?();
var t1 = i1.GetType();
var t2 = i2.GetType();
var t3 = i3.GetType();

我希望/期望我能够从上面的i对象中获取类型,而不会出现空引用异常。

如果这是不可能的,我将如何在保持空值的同时创建对 Nullable Int 的引用。

更新:对于那些感兴趣并且不想筛选链接问题中不完全适用的答案的人,解决方案是:

private void Example()
{
    var i = default(int?);
    var t = this.GetDeclaredType(i);
}

private Type GetDeclaredType<T>(T obj)
{
    return typeof(T);
}
4

0 回答 0