C#プログラムの入力がメソッド呼び出しを制御できるようにするにはどうすればよいですか?たとえば:c#入力に基づいてメソッド呼び出しを指定しますか?
たちはデリゲート型を持っていると仮定します
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であることを知っていますが、それはさらに複雑です。本当にあなたがカバーしようとしている範囲に依存
あなたは計画を立てていますか型に基づいて、または値に基づいてメソッドをosing? –
(ProcessInvocationInputに与えられたint []の私の例では)値に基づいています。 – jdphenix
コードが動作します。あなたの質問は何ですか? – svick