雖然使用LINQ我偶然發現了下面的表達式:Func <int,bool> Linq沒有返回關鍵字?
bool biggerThan10Exists = numbers.Any(n => n > 10);
所有的定義如下:
public static bool Any<TSource>(
this IEnumerable<TSource> source,
Func<TSource, bool> predicate
)
爲Func鍵的定義如下:
public delegate TResult Func<in T, out TResult>(
T arg
)
所以如果任何需要Func其需要de使節要傳遞的是回報一個int,怎麼來了,我可以通過一個lambda表達式,在我看來是一個無效委託的定義,即
n => n > 10
雖然我希望
n => return n > 10
我很確定我明顯錯過了一些東西,但什麼?
當「=>」後面的表達式就是「return」。事實上,最初你根本無法合法地在lambda體內使用'return'。 – Jon
return語句不是唯一隱含的;幾乎一切都是。唯一沒有暗示的是參數名稱和方法體。這個視頻很好地解釋了它:https://www.youtube.com/watch?v=KRjeu9Thp3s&list=PLAE7FECFFFCBE1A54&index=5 –