c# – 检查事件是否已注册

如果我有经典的方法来注册和取消注册事件(= – =),还有一种方法可以查看是否现在注册了某些内容吗?

假设我有两种方法可以在一个Timer上注册.如果已经在.Elapsed注册了某些内容,我不想要任何其他内容进行注册(并且不希望多次注册).

有没有办法查找当前注册的特定事件的方法?

解决方法

如果你真的想要这样的行为,我认为最好的选择是使用重载add {}和remove {}功能.
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;
       }
   }

}

相关文章

项目中经常遇到CSV文件的读写需求,其中的难点主要是CSV文件...
简介 本文的初衷是希望帮助那些有其它平台视觉算法开发经验的...
这篇文章主要简单记录一下C#项目的dll文件管理方法,以便后期...
在C#中的使用JSON序列化及反序列化时,推荐使用Json.NET——...
事件总线是对发布-订阅模式的一种实现,是一种集中式事件处理...
通用翻译API的HTTPS 地址为https://fanyi-api.baidu.com/api...