2015-04-30 78 views
0

如果FirstOrDefault()沒有返回一個值,那麼返回值爲空,什麼從FirstOrDefault<MyClass>()回來,哪個是最佳實踐?FirstOrDefault()和FirstOrDefault之間的區別<MyClass>()?

什麼是一些情況下,它會更好地使用FirstOrDefault<MyClass>(),因爲它似乎如果你的電話沒有返回任何東西,最好是返回null並檢查。

+0

所以,如果你把一個空的收集和調用'FirstOfDefault()'它會發生什麼?這是一個單線看看。 – jdphenix

+1

與通用參數,你只是更具體的編譯器提供的信息。 –

回答

6

沒有FirstOrDefault(),任何時候當你看到它編譯器正在爲你填寫<>。而實際的簽名

public static TSource FirstOrDefault<TSource>(
    this IEnumerable<TSource> source) 

IEnumerable<MyClass>你在呼喚它提供給填寫的信息。

+0

準確地說,因爲方法'FirstOrDefault()'返回'default(TSource)'而不僅僅是'null',它需要推斷類型。因此,即使您沒有明確指定類型,編譯器也會將其計算出來。 –