c# - 为什么有些语言更喜欢静态方法绑定(bind)而不是动态方法绑定(bind)?

标签 c# c++ ada dynamic-binding late-static-binding

<分区>

为什么 C++、C# 和 Ada 95 中的默认决定是使用静态方法绑定(bind),而不是动态方法绑定(bind)。

实现速度的提高是否值得抽象和可重用性的损失?

最佳答案

一般来说,您可以考虑必须为可扩展性设计基类。如果一个成员函数(使用 C++ 词汇表)没有被设计为被覆盖,那么在实践中覆盖它很有可能是不可能的,并且可以肯定的是,如果不了解类设计者的知识,它是不可能的think 是实现细节,如有更改,恕不另行通知。

两种语言的一些额外注意事项(我对 C# 的了解还不足以写它):

  • 如果选择不同,Ada 95 将与 Ada 83 发生兼容性问题。考虑到 Ada 95 的整个对象模型,以不同的方式进行处理是没有意义的(但您可以认为兼容性是选择对象模型的一个因素)。

  • 对于 C++,性能当然是一个因素。 你不用为你不用的东西买单原则以及将 C++ 当作一个更好的 C 来使用的可能性对它的成功起到了很大的帮助。

关于c# - 为什么有些语言更喜欢静态方法绑定(bind)而不是动态方法绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5699378/

相关文章:

ada - 从 github 安装 ada 库——不断出现文件未找到错误

c# - JQuery Ajax 从客户端上传文件和其他值

c++ - 如何查找当前系统时区

用于测试性能的 C++ 单元测试(综合基准)

c++ - IMAPI2 : adding files and folders fails

Ada sin(x) 使用泰勒级数计算

c# - 如何测试asp.net邮件是否被发送

c# - 使用 Microsoft Web Optimization 缩小 CSS 和 JavaScript

c# - 合并多边形的高效算法

ada - Ada 中的四舍五入