私はこの単純なイベントを持っています:
public class ClassA
{
public event Func<string, int> Ev;
public int Do(string l)
{
return Ev(l);
}
}
そして2つの方法:
static int Display(string k)
{
return k.Length;
}
static int Display_2(string k)
{
return k.Length*10;
}
このイベントを登録しています:
ClassA a = new ClassA();
a.Ev += Display;
a.Ev += Display_2;
今、私は実行しています:
Console.WriteLine(a.Do("aaa"));
出力 :
何 ???
彼は呼び出しリストに2つのメソッドを持っています! それらを実行しましたが、最後の登録からの結果のみを表示するのはなぜですか?
hasの結果はどこ
"3"
に行ったのですか? (最初の呼び出し) ? (両方のdisplay
+display_2
が実行されましたが...console.write
結果を繰り返し処理するとは思っていませんでしたが、どちらを表示するかを彼が決定することも期待していませんでした。 )