阅读量:2
在C#中,Action和Func是两种不同的委托类型,它们的区别在于参数和返回值的不同。
- Action是一个没有返回值的委托类型。它可以接受最多16个输入参数,但没有返回值。例如,一个Action委托可以表示一个没有参数的方法,或者一个有多个参数但没有返回值的方法。
示例:
Action<int, string> action = (x, y) => Console.WriteLine($"Action: {x}, {y}"); action(10, "Hello");
这里的Action委托接受一个int类型的参数和一个string类型的参数,然后将它们打印到控制台。
- Func是一个有返回值的委托类型。它可以接受最多16个输入参数,并返回一个值。例如,一个Func委托可以表示一个没有参数但返回int类型的方法,或者一个有多个参数并返回string类型的方法。
示例:
Func<int, int, string> func = (x, y) => $"Func: {x + y}"; string result = func(10, 20); Console.WriteLine(result);
这里的Func委托接受两个int类型的参数,然后返回它们的和作为string类型的结果。
总结:Action和Func都是委托类型,用于表示方法的引用。它们的区别在于Action没有返回值,而Func有返回值。