我真的很想知道Func和Action代表是否被开发公司使用。 他们是否将它用于活动?我知道这是一个奇怪的问题,但我已经向老师和其他许多人询问了,但没有人能给我答案。
答案 0 :(得分:4)
在C#中,Action
和Func
是减少代码重复和减少耦合的极其有用的工具。减少重复并使代码可重用对任何公司都很重要
很遗憾,许多开发人员都不愿意这样做,因为他们并不真正了解他们。
将Action和Func添加到工具箱是改进C#代码的一个非常重要的步骤。
使用它们的最佳例子:Linq
基于Action
和Func
以及Predicate
答案 1 :(得分:3)
这是这些结构的力量的一个例子,它向我展示了“初级开发者可能不理解它”的空虚。
如果您有一个Organisation
类,其中包含Department
个对象的集合,并且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
结构。