公司使用 C# 中的 Func 和 Action Delegates 吗?

Are Func and Action Delegates in C# used by companies?

我很想知道Func 和Action 委托是否被开发公司使用。 他们会用它来举办活动吗?我知道这是一个奇怪的问题,但我已经问过我的老师和其他许多人,但没有人能给我答案。

在 C# 中,ActionFunc 是减少代码重复和降低耦合的非常有用的工具。减少重复并使代码可重用对任何公司都很重要

遗憾的是许多开发人员回避它们,因为他们并不真正理解它们。

将 Action 和 Func 添加到您的工具箱是改进 C# 代码的非常重要的一步。

作为使用它们的一个很好的例子:Linq 基于 ActionFuncPredicate

下面是这些构造的强大功能的示例,它向我说明了 "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 来表示 FuncAction 结构。