我举个例子,试着解释一下我想问的问题:
假设我有名为 Func1
、Func2
、Fucn3
的函数...等等。所有这些函数都具有相同的签名。然后,还有另一个函数 Call(String str)
。现在基于传递给 Call
的参数,我想调用三个函数之一。即如果 str == "Func1"
调用 Func1,如果 str == "Func2"
调用 Func2,如果 str == "Func3"
调用Func3 ...等等。有没有一种方法可以不使用条件语句来做到这一点?
最佳答案
您可以为此使用多态性。
如果您有几个实现相同接口(interface)的类,您可以将具有您想要的行为的对象传递给您的函数并直接调用它,因为行为将被封装在传入的对象中。
参见 strategy pattern示例和详细信息。
关于c# - 选择其中一个功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12421088/