假设我们有通用方法:
public void GenericMethod<T>(T item)
{
var typeOf = typeof(T);
var getType = item.GetType();
}
Run Code Online (Sandbox Code Playgroud)
我们使用以下参数调用它:
GenericMethod(1)
GenericMethod((object) 1)
Run Code Online (Sandbox Code Playgroud)
结果是:
typeOf = System.Int32
getType = System.Int32
Run Code Online (Sandbox Code Playgroud)
和
typeOf = System.Object
getType = System.Int32
Run Code Online (Sandbox Code Playgroud)
有人可以解释为什么输入到对象的typeof整数返回System.Object,但.GetType()返回System.Int32?