pk10网站开发,惠州响应式网站建设,购物网站优化的建议,做网站需要登录什么软件事件声明和使用部分的代码#xff0c;防止多次注册事件主要通过判断事件中类型的委托实例是否为空实现
public class ReRegisterEvent
{public delegate void Mydelegate(string message);private Mydelegate? mydel;public event Mydelegate Myevent{add{if (mydel null){…事件声明和使用部分的代码防止多次注册事件主要通过判断事件中类型的委托实例是否为空实现
public class ReRegisterEvent
{public delegate void Mydelegate(string message);private Mydelegate? mydel;public event Mydelegate Myevent{add{if (mydel null){mydel value;}}remove{mydel - value;}}public void WriteMessage(string message){mydel?.Invoke(message);}
}事件订阅和触发的代码以下代码中多次注册后只执行一次注册的方法
using NUnit.Framework.Internal.Execution;namespace SampleTestProject
{public class Tests{[SetUp]public void Setup(){}[Test]public void Test1(){ReRegisterEvent reRegisterEvent new ReRegisterEvent();reRegisterEvent.Myevent Tests_Myevent;reRegisterEvent.Myevent Tests_Myevent;reRegisterEvent.WriteMessage();Assert.Pass();}private void Tests_Myevent(string message){Console.WriteLine(message);}}
}补充一下个人见解解决防止多次注册事件场景是同事遇到的若代码结构设计合理和代码实现规范其实这个问题不应该遇到。现实情况可能没有足够的时间去设计和规范实现当业务越来越复杂代码量变大时可能会带来这个问题。