如何最好地允许输入 ac# 程序来控制方法调用?例如:
假设我们有一个委托类型:
delegate void WriteMe();
还有几种方法:
void PrintInt() { Console.WriteLine(10); }
void PrintString() { Console.WriteLine("Hello world."); }
并允许输入选择调用顺序:
public static WriteMe ProcessInvocationInput(int[] val) {
WriteMe d = null;
foreach (int i in val) {
switch (i) {
case 1: d += PrintInt; break;
case 2: d += PrintString; break;
}
}
}
以及调用它的代码:
static void Main(string args[]) {
int[] values = {1, 2, 3}; // Obviously this array could be filled
// from actual input (args, file, wherever)
WriteMe d = ProcessInvocationInput(values);
d();
}
我发布这个问题的原因是因为实现看似简单的想法似乎相当复杂。我知道实现此行为的另一种方法是使用反射 API,但这会更加复杂。