Class A
{
   C c;
   void A1()
   {
      c = new C;
   }
   void A2()
   {
      B b=new B(c);
   }
}
Class B
{
   public B(C c)
   {
      此处处理c的事件
   }
}
Class C
{
    event CEvent;
}
如上代码。 目前设计是这样的。我想在B类中处理C类的事件。。而C类那个对象是在A的A1方法中创建的。
在B中如何捕捉C类的事件的。。c.event+= 应该写在什么地方。。如果这种方式设计的不合理。。那么该怎么设计。是否是出了A1()作用域 c对象的就只能引用了。

解决方案 »

  1.   

    在Class B中监听C的事件就可以吧,
    C在A中创建的,但在构造B时把C传到B中,
    在B中监听传来的C,
    不过在出了A2这个方法后,B会不会被析构了?
    我小菜等高手们讨论...
      

  2.   

    这个问题主要是看你怎么处理B类了,如果你的意思是在B类里面做写事件处理, 一般是这样用
    Class A
    {
       C c;
       void A1()
       {
          c = new C;
       }
       void A2()
       {
          B b=new B(c);
       }
    }
    Class B
    {
       public B(C c)
       {
          c.CEvent += ....
       }
    }
    Class C
    {
        event CEvent;
    }
    但是,如果你是想在B初始的时候响应事件,而不是申明事件, 那当然,就该在这样写
    Class A
    {
       C c;
       void A1()
       {
          c = new C;
          c.CEvent += ....
       }
       void A2()
       {
          B b=new B(c);
       }
    }
    Class B
    {
       public B(C c)
       {
          c.invork(...);
       }
    }
    Class C
    {
        event CEvent;
    }