我有一个问题。 是否可以在不同类的函数之间传递事件以进行注册? 示例:
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();
}