我的原始答案适合在定义事件的类中使用,但是您已经更新了问题,以反映您希望从定义类之外完成此操作,因此,我已将其删除。
只有定义事件的类才能引用该事件使用的隐式委托变量。在该类之外,您只能通过和来访问
add和
remove方法。这意味着您不能直接执行您要问的事情。但是,您可以使用功能性方法。
+=``-=
class A{ public event EventHandler Event1; public void TriggerEvent1(){ if(Event1 != null) Event1(this, EventArgs.Empty); }}class B{ static void HandleEvent(object o, EventArgs e){ Console.WriteLine("Woo-hoo!"); } static void AttachToEvent(Action<EventHandler> attach){ attach(HandleEvent); } static void Main(){ A a = new A(); AttachToEvent(handler=>a.Event1 += handler); a.TriggerEvent1(); }}


