C# 实现有效的方法调用顺序可能性

C# 实现有效的方法调用顺序可能性,c#,enums,method-invocation,C#,Enums,Method Invocation,我有几种方法可以做一些运算。让我们调用这些方法,例如x,y,z,w 假设用户以某种方式让我知道方法的调用顺序。例如,他可以选择调用:x();z();w();y()或其他一些可能性 问题是,考虑到每种组合都是可能的,我如何才能有效地实现这样的东西?我想知道实现方式,以及如何让用户选择订单。(例如,可能是一个Enum?但它们的枚举值是否为xyzw、xzyw等,这将有很多可能性?我最终做的是制作一个字典,将字符串的名称映射到它的方法。因为我们讨论的是一个带有GUI的系统,所以我还向用户添加了一些带有可

我有几种方法可以做一些运算。让我们调用这些方法,例如x,y,z,w

假设用户以某种方式让我知道方法的调用顺序。例如,他可以选择调用:
x();z();w();y()或其他一些可能性


问题是,考虑到每种组合都是可能的,我如何才能有效地实现这样的东西?我想知道实现方式,以及如何让用户选择订单。(例如,可能是一个
Enum
?但它们的枚举值是否为xyzw、xzyw等,这将有很多可能性?

我最终做的是制作一个
字典,将字符串的名称映射到它的方法。因为我们讨论的是一个带有GUI的系统,所以我还向用户添加了一些带有可用选项(字典中键的字符串值)的组合框,用户可以选择想要的顺序。然后我重复他的选择,并相应地激活该方法。

这些方法是否有相同的参数集(看起来没有)和相同的返回类型(看起来无效),或者有什么区别?让我们先假设他们得到了参数集和相同的返回类型如果是这样,你可以有一个
新字典{{“x”,x},{“y”,y},…}
。然后以某种方式从用户那里获得一个键列表,然后:
foreach(string-key-in-list){Action-Action;if(dictionary.TryGetValue(key,out-Action){Action();})}
我的目标是,用户将通过GUI界面给出他的请求,并选择预定义的操作。关于如何获取密钥,这是一个小问题。因此,您将
dictionary.keys
作为一个列表提供给用户,用户可以在其中选择他/她想要的内容和顺序。