公司使用 C# 中的 Func 和 Action Delegates 吗?
Are Func and Action Delegates in C# used by companies?
我很想知道Func 和Action 委托是否被开发公司使用。
他们会用它来举办活动吗?我知道这是一个奇怪的问题,但我已经问过我的老师和其他许多人,但没有人能给我答案。
在 C# 中,Action
和 Func
是减少代码重复和降低耦合的非常有用的工具。减少重复并使代码可重用对任何公司都很重要
遗憾的是许多开发人员回避它们,因为他们并不真正理解它们。
将 Action 和 Func 添加到您的工具箱是改进 C# 代码的非常重要的一步。
作为使用它们的一个很好的例子:Linq
基于 Action
和 Func
和 Predicate
下面是这些构造的强大功能的示例,它向我说明了 "junior devs might not understand it" 论点的空洞性。
如果您有一个 Organisation
class,其中包含一个 Department
对象的集合,并且如果 Department
class 包含一个 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();
与手动循环相比,此代码更简洁,更不容易出现人为错误,并且结果数组的不变性比可变列表更不容易出现错误。要获得这些好处,有必要熟悉使用 lambda 来表示 Func
和 Action
结构。
我很想知道Func 和Action 委托是否被开发公司使用。 他们会用它来举办活动吗?我知道这是一个奇怪的问题,但我已经问过我的老师和其他许多人,但没有人能给我答案。
在 C# 中,Action
和 Func
是减少代码重复和降低耦合的非常有用的工具。减少重复并使代码可重用对任何公司都很重要
遗憾的是许多开发人员回避它们,因为他们并不真正理解它们。
将 Action 和 Func 添加到您的工具箱是改进 C# 代码的非常重要的一步。
作为使用它们的一个很好的例子:Linq
基于 Action
和 Func
和 Predicate
下面是这些构造的强大功能的示例,它向我说明了 "junior devs might not understand it" 论点的空洞性。
如果您有一个 Organisation
class,其中包含一个 Department
对象的集合,并且如果 Department
class 包含一个 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();
与手动循环相比,此代码更简洁,更不容易出现人为错误,并且结果数组的不变性比可变列表更不容易出现错误。要获得这些好处,有必要熟悉使用 lambda 来表示 Func
和 Action
结构。