在不同类的函数中使用类似事件的参数

时间:2018-12-11 12:58:49

标签: c# winforms

我有一个问题。 是否可以在不同类的函数之间传递事件以进行注册? 示例:

public class A{
    public delegate void Register(object s, EventArgs e);
    public event Register OnRegister;
    public A(){/**/}
    public void call(){
      OnRegister?.Invoke(.. .. .. )
    }
}

public class B{
    public B(){/**/}
    public B(Register r){
       r += (s,e) => { /***/} // Here i don't add event to invocation list, r is only delegate!!
    }
}

这是我上课情况的摘录。 好吧,我知道,如果我想从A拦截B中的事件,我可以在B中使用类A的实例,但是,可以在没有实例的情况下在B中注册A的事件吗?

最终示例:

main{
  var a = new A();
  var b = new B();
  var b2 = new B();
  b.register(a.OnRegister);
  b2.register(a.OnRegister);
  a.call();
}

0 个答案:

没有答案