我有这个简单的事件:
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种方法!它确实运行了它们,但为什么它只显示上次注册的结果?
结果
"3"
去哪儿了?(第一次调用)?(虽然两个display
+display_2
都被执行了……没想到console.write
会遍历结果。但也没想到他会决定显示哪个。)