📅  最后修改于: 2023-12-03 15:29:45.662000             🧑  作者: Mango
在C#中,Func和Action是两个重要的委托类型。这两个类型都可用于表示具有签名的方法。然而,它们的不同之处在于它们的返回类型。
Func表示具有指定的输入参数和返回值的方法委托。它有一个返回类型的类型参数。例如:
Func<int, int, int> add = (a, b) => a + b;
int result = add(2, 3);
// result = 5
在这个例子中,我们定义了一个Func类型的变量add。它接受两个int参数,并返回一个int。我们用Lambda表达式实现了它的方法体。我们可以看到,我们将add作为一个常规的方法调用,传递2和3作为参数,返回结果5。
Action表示没有返回值的方法委托。它的类型参数是它所要代表的方法的参数列表的类型。例如:
Action<string> print = (message) => Console.WriteLine(message);
print("Hello World");
// 输出:Hello World
在这里,我们定义了一个Action类型的变量print。它接受一个string参数并返回void。我们用Lambda表达式实现了它的方法体,它简单地将一个字符串消息打印到控制台上。
Func和Action是在C#中定义方法委托的两种主要方式。它们都可以用来传递方法作为参数,从而在运行时动态确定方法的执行方式。然而,它们的不同在于它们是否有返回值。利用Func和Action,程序员可以轻松地通过委托来实现“回调机制”。这可能是软件开发中最常用的编程模式之一。