好吧,还蛮能理解老赵为啥吐槽这种问题的。
首先回答问题吧,我知道提问者希望看到的答案是这样的:
默认情况下事件和委托的实现机制是一样的,或者说除了多态之外的任何运行时方法调用决策,委托是性能最好的方式。所以只考虑委托的性能。
相较于callvirt,单次委托调用的性能差异肯定不可能是ms级别的差别,所以基本上可以不必担心。
不过话说这个自己随便写个程序实测一下就知道了。
这种问题的槽点在于,事实上性能是一个很大的话题,是一个综合性的问题,要改善程序的性能是一个系统性的问题,而且很多时候是必须要进行Profiling才可能发现影响性能的关键点,而不是纸上谈兵就能解决问题的。
绝大多数时候,委托不会成为性能的瓶颈,倒是很可能会掉到事件的坑里面:
事件(Event),绝大多数内存泄漏(Memory Leak)的元凶[上篇]