与 Java 不同,为什么 C# 默认将方法视为非虚函数?是否更有可能是性能问题而不是其他可能的结果?
我想起了阅读 Anders Hejlsberg 的一段关于现有架构带来的几个优点的段落。但是,副作用呢?默认情况下使用非虚拟方法真的是一个很好的权衡吗?
最佳答案
类应该设计以便继承能够利用它。默认情况下拥有 virtual
方法意味着类中的每个函数都可以被插入并被另一个函数替换,这并不是一件好事。许多人甚至认为默认情况下类应该是sealed
的。
virtual
方法也会对性能产生轻微影响。然而,这可能不是主要原因。
关于c# - 为什么 C# 默认将方法实现为非虚拟的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/814934/