我有与活动的接口。 我的类实现了接口。
该类的逻辑需要修复所有订阅事实并取消订阅事件。
如何实施拦截订阅并取消订阅活动?
答案 0 :(得分: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
}
}
答案 1 :(得分: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;