只是好奇.
是否有任何时候调用.GetType()一个对象将返回null?
假设用法:
public Type MyMethod( object myObject )
{
return myObject.GetType();
}
Run Code Online (Sandbox Code Playgroud)
不,它不会回来null.但这是一个需要注意的问题!
static void WhatAmI<T>() where T : new() {
T t = new T();
Console.WriteLine("t.ToString(): {0}", t.ToString());
Console.WriteLine("t.GetHashCode(): {0}", t.GetHashCode());
Console.WriteLine("t.Equals(t): {0}", t.Equals(t));
Console.WriteLine("t.GetType(): {0}", t.GetType());
}
Run Code Online (Sandbox Code Playgroud)
这是某个输出T:
t.ToString():
t.GetHashCode(): 0
t.Equals(t): True
Unhandled Exception: System.NullReferenceException: Object reference not set to
an instance of an object.
Run Code Online (Sandbox Code Playgroud)
什么是T?答:任何Nullable<U>.
(Marc Gravell的信用原创概念.)