私の質問は次のコードで詳しく説明されています-私がこれを尋ねている理由は、私がデリゲートを試しているからです:
//create the delegate
delegate int del(int x);
class Program {
static void Main(string[] args) {
Program p;
p = new Program();
del d = p.a;
d += p.b;
d += p.c;
d += p.d;
d += p.e;
Console.WriteLine(d(10)); //<<was hoping it would be 10+2+3+4+5+6
Console.WriteLine("press [enter] to exit");
Console.ReadLine();
}
private int a(int x) { Console.WriteLine("a is called"); return x + 2; }
private int b(int x) { Console.WriteLine("b is called"); return x + 3; }
private int c(int x) { Console.WriteLine("c is called"); return x + 4; }
private int d(int x) { Console.WriteLine("d is called"); return x + 5; }
private int e(int x) { Console.WriteLine("e is called"); return x + 6; }
}
16が返されます....
「aが呼び出されました」などのさまざまなメッセージがすべてに出力されるため、すべての関数が起動しますがconsole
、最後の関数から返された金額のみが返されますe
-バックグラウンドでそれらが返されたが上書きされたと仮定していますか?