为了适应单元测试和模拟,将方法和属性声明为虚拟变为通常的做法。将虚拟化声明为非虚拟化会产生性能影响吗?
答案 0 :(得分:9)
通常,不同之处在于使用Callvirt Opcode调用虚拟方法,而虚拟方法不使用标准Call Opcode。 Call Opcodes肯定比Callvirt更快,但我从来没有发现它几乎足以证明基于此做出设计决策的合理性。
Premature optimization is the root of all evil.
答案 1 :(得分:1)
不,不是真的。
这不是你会注意到的。
答案 2 :(得分:1)
我不知道具体细节,但我知道你不必为99%的应用程序担心。
btw - 如果选择Mock接口而不是类,则不需要虚拟方法。
祝你好运, 汤姆