2012-10-23 53 views
3

新的C#和我檢討,它具有以下return語句一些代碼:返回(對象)null在c#中的意思是什麼?

return (Object) null 

這是什麼意思在C#中,什麼將被退回?

感謝

+0

這可能是毫無意義的。你找到這條線的方法是什麼? – Rawling

+0

恕我直之,這與'return null;'相同...... – Marco

+2

@Mr_Green不,它不會 –

回答

11

我能想到的地方,這是需要在一個匿名方法,其中編譯器無法推斷返回類型的唯一地方。

例如,

var boxedThings = strings.Select(s => 
{ 
    int i; 
    if (int.TryParse(s, out i)) 
     return i; 
    double d; 
    if (double.TryParse(s, out d)) 
     return d; 
    return (object)null; 
}); 

不編譯沒有(object)

+3

哦,很好;返回類型的泛型類型推斷 - 我沒有想到那個 –

6

這是絕對等於return null

+0

那麼,不*絕對*相等(我可以想到很多地方'返回null;'會工作,'return(Object)null;'不會編譯) - 但*語義*,是的 - 他們的意思是相同的 –

+0

感謝Kirill - 如果可能的話,你能解釋一下以這種方式返回null的好處嗎? – Sherlock

+0

我可以想到'return null'不起作用和'return(object)null' _does_的地方,但它們非常愚蠢。 – Rawling

1

您正在施放具有空值的對象。