>>434
public class Test {
   public event EventHandler TestEvent;
   public MethodInfo[] GetMethodsOfTestEvent() {
      if (this.TestEvent == null)
         return new MethodInfo[0];
      Delegate[] delegates = this.TestEvent.GetInvocationList();
      MethodInfo[] methods = new MethodInfo[delegates.Length];
      for (int i = 0; i < delegates.Length; i++)
         methods[i] = delegates[i].Methods;
      return methods;
   }
}
public class Entry {
   public static void Main() {
      Test test = new Test();
      test.TestEvent += new EventHandler(Hoge);
      foreach (MethodInfo info in test.GetMethodsOfTestEvent())
         Console.WriteLine(info);
   }
   public static void Hoge(object sender, EventArgs e) {}
}

結局の所eventはDelegateのラッパにすぎないわけで、
event宣言はMulticastDelegateクラスの派生クラスを暗黙的に作ることだから、
add_TestEventとremove_TestEvent以外は宣言したクラス内なら
普通にMulticastDelegateクラスのインスタンスとして使えるってことだ。