测试 C# delegate 执行效率
关于delegate的执行效率,我也是偶然间关注的一个问题。我对一个问题提出了自己的解决方案,只不过这个解决方案是使用代理的。同时其他人又提出了直接封装一个类,调用这个类中的封装的方法去解决这个问题。针对我们遇到的问题,我们都一致认为代理是解决我们问题比较合适的方式。但是,他们也提出代理的效率是非常低下的,如果我们使用代理,会影响我们系统的性能。于是我就想:代理的执行效率真的很低吗? 写个测试程序试试呗。 首先写一个简单的代理类,源码如下: 1 public class DelegateT 2 { 3 public delegate int del(int a); 4 private event del DelHandle; 5 public void Reg(del d) 6 { 7 DelHandle = d; 8 } 9 public void UnReg(del d) 10 { 11 DelHandle -= d; 12 } 13 14 public int DoSomething(int a) 15 { 16 //这里可以做一些事情。 17 18 if (DelHandle != null) 19 { 20 return DelHandle(a);//触发事件,调用注册的方法。 21 } 22 else 23 { 24 return 0; 25 } 26 } 27 }