2010-09-30 57 views
0

我有事件的接口。 我的类实现了接口。如何捕获订阅事件?

类的逻辑需要解决所有的事实订阅和从事件退订。

如何实现拦截订阅和退订事件?

+2

为什么这标志着 '社区维基'? – Ani 2010-09-30 13:31:09

+0

对不起。 '社区维基'标志是错误的。 – SkyN 2010-09-30 13:53:39

+0

如果您要使用IDE,请右键单击该类中的接口并选择明确实现,您确实会得到您所处的getter/setter。 – 2010-09-30 14:38:12

回答

3

试试这个:

private event EventHandler<EventArgs> shibby; 

    public event EventHandler<EventArgs> Shibby 
    { 
     add 
     { 
      // your logic here 
      this.shibby += value; 
      // or here 
     } 
     remove 
     { 
      // your logic here 
      this.shibby -= value; 
      // or here 
     } 
    } 
2

好吧,如果你绝对需要拦截订阅:

private EventHandler fooEventHandler; 

public event EventHandler Foo 
{ 
    add 
    { 
     // Put any extra logic in here 
     fooEventHandler += value; 
    } 
    remove 
    { 
     fooEventHandler -= value; 
    } 
} 

(请注意,如果你需要线程安全的,则需要修改上面的代码。)

但如果您使用的是现场般的事件,像这样:

public event EventHandler Foo; 

那么你就可以“取消订阅”一切都只是通过(在课堂上)写:

Foo = null;