如果我采用经典的方式注册和注销事件(+= -=),那么有没有一种方法可以查看当前是否已经注册了某个事件?
假设我有两种方法可以在一个计时器上进行注册。如果已经在 .Elapsed
上注册了某些内容,我不希望其他任何内容注册(也不希望重复注册)。
有没有办法查找当前注册到特定事件的方法?
如果我采用经典的方式注册和注销事件(+= -=),那么有没有一种方法可以查看当前是否已经注册了某个事件?
假设我有两种方法可以在一个计时器上进行注册。如果已经在 .Elapsed
上注册了某些内容,我不希望其他任何内容注册(也不希望重复注册)。
有没有办法查找当前注册到特定事件的方法?
public class Foo
{
private EventHandler<ElapsedEventArgs> _elapsed;
public EventHandler<ElapsedEventArgs> Elapsed
{
add
{
if( _elapsed == null )
_elapsed += value;
else
throw new InvalidOperationException ("There is already an eventhandler attached to the Elapsed event.");
}
remove
{
_elapsed -= value;
}
}
}