我有两个类库说A和B.A有B的引用所以我可以调用B的任何函数。但是现在需要的是,我想引发事件(或函数;实际上只是想发送一点来自B的A的信息。由于循环依赖,我无法添加引用。有没有办法做到这一点?
请给我代码示例;如何注册和致电 感谢
答案 0 :(得分:1)
在B类中定义事件(您可以使用Action个代表之一进行事件):
public class B
{
public event Action<int> SomethingHappened; // define event
private void Something()
{
if (SomethingHappened != null) // check if somebody subscribed
SomethingHappened(42); // raise event and pass data
}
}
在A组中订阅该事件:
public class A
{
private B _b;
public A(B b)
{
_b = b;
_b.SomethingHappened += SomethingHappenedWithB; // subscribe
}
private void SomethingHappenedWithB(int data)
{
// handle event, use data
}
}