Tag: overloading func

封装Action 和Func ?

我正在尝试为某种IExecutable接口进行设计。 我不会详细介绍,但重点是我有几个需要从基类执行的动作。 它们可能采用不同的参数(没什么大不了的),它们可能/可能不会返回值。 到目前为止,这是我的设计: public abstract class ActionBase { // … snip … } public abstract class ActionWithResultBase: ActionBase { public abstract T Execute(); } public abstract class ActionWithoutResultBase: ActionBase { public abstract void Execute(); } 到目前为止,我的每个具体动作都需要来自ActionWithResultBase或ActionWithoutResult基础的孩子,但我真的不喜欢这样。 如果我可以将Execute的定义移动到ActionBase,考虑到具体类可能会或可能不会返回值,我将实现我的目标。 有人告诉我这可以通过使用Func和Action来完成,我完全同意,但我找不到一种方法将它放到一个单独的类中,以便调用者知道该操作是否将返回一个值或不。 简介:我想做的事情如下: // Action1.Execute() returns something. var a = new Action1(); var result = a.Execute(); // Action2.Execute() […]