只是好奇。Object.GetType()是否曾经返回null?
有没有什么时候在对象上调用.GetType()
会返回null?
假设用法:
public Type MyMethod(object myObject)
{
return myObject.GetType();
}
只是好奇。Object.GetType()是否曾经返回null?
有没有什么时候在对象上调用.GetType()
会返回null?
假设用法:
public Type MyMethod(object myObject)
{
return myObject.GetType();
}
对象上的GetType永远不会返回null - 至少它将是类型对象。如果myObject为null,那么当您尝试调用GetType()时,您会遇到异常
如果myObject的参数为空,那么你将无法调用的GetType()就可以了。 NullReferenceException将被抛出。否则,我认为你会好的。
http://msdn.microsoft.com/en-us/library/system.object.gettype(VS.85).aspx
MSDN仅列出一个类型的对象作为返回值。
我想象以外,你可以得到的是“没有设置为对象的实例”异常(或者它的空引用),因为MSDN确实说INSTANCE。
基本上,不,它不能(永远不会返回null),也不会。
不,它不会返回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());
}
这里有一定T
输出:
t.ToString():
t.GetHashCode(): 0
t.Equals(t): True
Unhandled Exception: System.NullReferenceException: Object reference not set to
an instance of an object.
什么是T
?答:任何Nullable<U>
。
(信用原单概念马克Gravell)
我看你做了什么,有;-p – 2010-02-04 16:29:12
@Marc Gravell:我做你的信用,如果这是你的意思。我无法找到您首次提交的帖子,但提供链接?我认为这是在C#/ .net gotcha线程中。 – jason 2010-02-04 16:37:11