我的一位同事告诉我,实现接口(interface)会引入开销。这是真的吗?
我不关心微优化;我只想知道这需要更深入的细节。
最佳答案
忍不住测试了一下,貌似几乎没有开销。
参与者是:
Interface IFoo defining a method
class Foo: IFoo implements IFoo
class Bar implements the same method as Foo, but no interface involved
所以我定义了
Foo realfoo = new Foo();
IFoo ifoo = new Foo();
Bar bar = new Bar();
并调用该方法,该方法对每个变量进行 20 次字符串连接,10,000,000 次。
realfoo: 723 Milliseconds
ifoo: 732 Milliseconds
bar: 728 Milliseconds
如果该方法什么都不做,实际的调用会更加突出。
realfoo: 48 Milliseconds
ifoo: 62 Milliseconds
bar: 49 Milliseconds
关于c# - 实现接口(interface)的开销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/890687/