![](/img/trans.png)
[英]C# Pass Method as parameter with different parameters with Action and Func delegates
[英]Are Func and Action Delegates in C# used by companies?
我真的很想知道Func和Action代表是否被開發公司使用。 他們是否將它用於活動? 我知道這是一個奇怪的問題,但我已經向老師和其他許多人詢問過,但沒有人能給我一個答案。
在C#中, Action
和Func
是減少代碼重復和減少耦合的極其有用的工具。 減少重復並使代碼可重用對任何公司都很重要
令人遺憾的是,許多開發人員回避他們,因為他們並不真正了解他們。
將Action和Func添加到工具箱是改進C#代碼的一個非常重要的步驟。
作為使用它們的最佳例子: Linq
基於Action
, Func
和Predicate
這是這些結構的力量的一個例子,它向我展示了“初級開發者可能不理解它”的空虛論點。
如果您有一個包含Department
對象集合的Organisation
類,並且Department
類包含Employee
對象的集合,那么如何獲得組織的全部員工?
您可以遍歷對象並構建集合:
var allEmployees = new List<Employee>();
foreach (var department in organisation.Departments)
{
foreach (var employee in department.Employees)
{
allEmployees.Add(employee);
}
}
或者你可以簡單地使用單一陳述
var allEmployees = organisation.Departments.SelectMany(d => d.Employees).ToArray();
與手動循環相比,此代碼更簡潔,並且不易受人為錯誤的影響,並且結果數組的不變性比可變列表更不容易出錯。 為了獲得這些好處,有必要熟悉使用lambdas來表示Func
和Action
結構。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.