在 C# 中,称为委托的类型表示对具有特定签名的方法的引用。
开发人员使用委托来实现回调方法、处理事件以及执行需要稍后执行方法的任务。
C# 提供了各种委托,其中两个常用的委托是 Action 和 Func,它们都定义在 System 命名空间中。
在本教程中,您将了解 C# 中的 Action 和 Func 委托。
要下载本文的源代码,请访问此GitHub 存储库: /TobbyJay/ActionAndFuncDelegate。
让我们首先讨论 Action 委托并探索它的用法
(更|多优质内|容:java567 点 c0m)
C# 中的动作委托是什么?
Action 委托是一种预定义的委托类型,它封装了具有零个或多个不返回值的输入参数的方法。换句话说,一个 Action 委托代表一个返回 void 的方法。
考虑这个示例,演示在简单的控制台计算器应用程序中使用 Action 委托:
Action<int, int> ActionCalculator = (a, b) =>
{
Console.WriteLine($"Addition result: {a + b}");
Console.WriteLine($"Subtraction result: {a - b}");
Console.WriteLine($"Multiplication result: {a * b}");
Console.WriteLine($"Division result: {a / b}");
};
ActionCalculator(4, 2);
在此示例中,我们定义了一个名为 ActionCalculator 的 Action 委托。它采用两个整数参数并使用这些参数执行四个基本算术运算。然后,我们使用值 4 和 2 调用委托。
该应用程序在运行时产生以下输出:
Addition result: 6
Subtraction result: 2
Multiplication result: 8
Division result: 2
正如您所看到的,利用 Action 委托简化了将一个方法作为参数传递给另一个方法的过程。
C# 中的 Func 委托是什么?
Func 委托是另一种预定义的委托类型,它表示具有零个或多个返回值的输入参数的方法。与 Action 委托不同,Func 委托的返回类型可以是任何类型。
让我们考虑一个在简单的控制台计算器应用程序中使用 Func 委托的示例。
在这个例子中,我们定义了一个 Calculator 类:
public class Calculator
{
public int Add(int a, int b) => a + b;
public int Subtract(int a, int b) => a - b;
public int Multiply(int a, int b) => a * b;
public int Divide(int a, int b) => a / b;
}
Calculator 类包含执行四种基本算术运算的方法。
接下来,我们创建四个 Func 委托,每个委托都指向计算器的方法之一:
var FuncCalculator = new Calculator();
Func<int, int, int> add = FuncCalculator.Add;
Func<int, int, int> subtract = FuncCalculator.Subtract;
Func<int, int, int> multiply = FuncCalculator.Multiply;
Func<int, int, int> divide = FuncCalculator.Divide;
Console.WriteLine($"Addition result: {add(4, 2)}");
Console.WriteLine($"Subtraction result: {subtract(4, 2)}");
Console.WriteLine($"Multiplication result: {multiply(4, 2)}");
Console.WriteLine($"Division result: {divide(4, 2)}");
最后,我们使用值 4 和 2 调用每个委托并将结果打印到控制台。
计算器应用程序在运行时显示以下输出:
Addition result: 6
Subtraction result: 2
Multiplication result: 8
Division result: 2
Func 委托提供了一种简单的方法来定义和使用方法,将方法作为参数传递并作为结果返回。
结论
总之,Action 和 Func 委托提供了一种将方法调用封装在委托对象内的方法。
当方法不返回值时,开发人员使用 Action 委托;当方法返回值时,开发人员使用 Func 委托。
(更|多优质内|容:java567 点 c0m)
标签:Console,委托,示例,C#,int,result,Func,Action From: https://www.cnblogs.com/web-666/p/17536619.html