为了适应单元测试和模拟,将方法和属性声明为虚拟方法已成为一种常见做法。相较于非虚拟方法,声明虚拟方法是否会对性能产生影响?
虚方法使用Callvirt Opcode调用,而非虚方法使用标准的Call Opcode。 Call Opcode比Callvirt更快,但我从未发现它足够重要,以至于需要基于这个做出设计决策。
过早优化是万恶之源。
不,不是很明显。
这不是你会注意到的东西。
我不知道具体情况,但我知道对于99%的应用程序来说,你不必担心它。
顺便说一下 - 如果选择模拟接口而不是类,你就不需要虚方法。
祝好运, 汤姆
moq
也使用动态代理(不要使用它)。我指的是那些通过分析器接口进行拦截的工具。 - Stefan Hanke