public static IEnumerable<TResult> Select<TSource, TResult>(this IEnumerable<TSource> source, Func<TSource, TResult> selector);
看了一晚上看不懂這段代碼,為什么是這樣寫a.Select(p => p.Name),看了上面的代碼 我得出a.Select<int,int>(a,1) 但是是錯誤的,有大神指導一下嗎?拓展方法,委托,匿名方法,lameda運算式都了解的
uj5u.com熱心網友回復:
//
// 摘要:
// 封裝一個方法,該方法具有一個引數,且回傳由 TResult 引數指定的型別的值。 若要瀏覽此型別的.NET Framework 源代碼,請參閱Reference
// Source。
//
// 引數:
// arg:
// 此委托封裝的方法的引數。
//
// 型別引數:
// T:
// 此委托封裝的方法的引數型別。
//
// TResult:
// 此委托封裝的方法的回傳值型別。
//
// 回傳結果:
// 此委托封裝的方法的回傳值。
[TypeForwardedFrom("System.Core, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=b77a5c561934e089")]
public delegate TResult Func<in T, out TResult>(T arg);
uj5u.com熱心網友回復:
public static IEnumerable<TResult> Select<TSource, TResult>(this IEnumerable<TSource> source, Func<TSource, TResult> selector);首先這是一個擴展。
this IEnumerable<TSource> source代表按照這個型別的擴展。所有IEnumerable<TSource>型別都能點出select方法。
Func<TSource, TResult> selector就是一個委托。
所以這個方法,只要傳遞一個Func就可以了。
前面的引數,不用傳遞
uj5u.com熱心網友回復:
Enumerable Select 方法,其中TSource是你的引數,TResult是你的回傳值,你的理解是有問題的。a.Select(p => p.Name)這樣寫其實是語法糖也是我們說的Lambda運算式,如果你真的了解lambda運算式,其實沒那么多疑問了。uj5u.com熱心網友回復:
=> goes to轉載請註明出處,本文鏈接:https://www.uj5u.com/net/114951.html
標籤:C#
上一篇:登錄界面
下一篇:DataGridView控制元件
