在C#中如何定义哪些返回函数什么都不返回的函数?像这样:
class X
{
public Func<void> GetFuncReturningVoid() { ... }
}
答案 0 :(得分:8)
返回任何内容的函数是Action
。使用lambda表达式,你可以这样写:
Action GetFuncReturningVoid() {
return () => Console.Writeline("my action");
}
如果你需要接受论点......
Action<int, int> GetActionWithArguments() {
return (int x, int y) => Console.Writeline(x * y);
}
或者您可以让编译器推断出类型:
Action<int, int> GetActionWithArguments() {
return (x, y) => Console.Writeline(x * y);
}
答案 1 :(得分:1)
一般来说,Action
是“行动”:他们做某事,但什么也不做。 Func
是数学意义上的“函数”:它们将一个值转换为另一个值。
所以你想要Action
或Action<T>
(对于T
类型的一个参数)或Action<T, U>
等等。