在c#中引发其他类库的事件

时间:2014-01-20 08:02:08

标签: c#

我有两个类库说A和B.A有B的引用所以我可以调用B的任何函数。但是现在需要的是,我想引发事件(或函数;实际上只是想发送一点来自B的A的信息。由于循环依赖,我无法添加引用。有没有办法做到这一点?

请给我代码示例;如何注册和致电 感谢

1 个答案:

答案 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
   }
}

考虑阅读C# Events Tutorial