如何调用所有事件处理程序订阅者并获取其结果?

Lam*_*fif 2 .net c# oop events behavior

我有这个片段:

public static void Main()
{
    OnComparaison += LePlusPetit;
    OnComparaison += LePlusGrand;
    Console.WriteLine(OnComparaison(0, 9));
    Console.ReadKey();
}

public static int LePlusPetit(object obj1, object obj2)
{
    int int1 = (int)obj1;
    int int2 = (int)obj2;
    return (int1 < int2) ? int1 : int2;
}

public static int LePlusGrand(object obj1, object obj2)
{
    int int1 = (int)obj1;
    int int2 = (int)obj2;
    return (int1 > int2) ? int1 : int2;
}

public delegate int Comparer(object obj1, object obj2);
public static event Comparer OnComparaison;
Run Code Online (Sandbox Code Playgroud)

我一直都是这样的结果9.所以我需要知道:

  1. 是否只执行最后订阅的事件处理程序而不是所有订阅者?
  2. 如果是这种情况,我如何修改代码以使事件被触发时执行所有订阅的事件处理程序?

Sel*_*enç 6

是否只执行最后订阅的事件处理程序而不是所有订阅者?

不,所有这些都被执行但结果是最后执行的方法的返回值.