只是好奇。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