c# - 方法重载解析和 Jon Skeet 的脑筋急转弯

标签 c# operator-overloading

Jon's Brain Teasers

这里是剧透......

我正在查看 answer到#1,我必须承认我从来不知道过载决议是这种情况。但为什么是这样呢。在我看来,Derived.Foo(int) 似乎是下行的合乎逻辑的路线。

这个设计决策背后的逻辑是什么?

奖励时间!

此行为是 C# 规范、CLR 实现还是编译器的结果?

最佳答案

这种行为是经过深思熟虑和精心设计的。原因是因为这种选择减轻了一种形式的 Brittle Base Class Failure 的影响。

阅读我关于该主题的文章以获取更多详细信息。

http://blogs.msdn.com/ericlippert/archive/2007/09/04/future-breaking-changes-part-three.aspx

关于c# - 方法重载解析和 Jon Skeet 的脑筋急转弯,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2744528/

相关文章:

C++ 添加 2 个 3D vector 返回垃圾值

c# - 将图像从 Stream/StreamReader 加载到图像或 RawImage 组件

c# - 如何在一般的 c# 中将方法存储在堆栈或列表中

C#,如何以像素为单位获取纸张大小?

c++ - 字符串类关系运算符重载

c++ - 在指向对象的指针上使用 ostream 重载

c++ - strcpy/strcat 奇怪字符输出

c# - 动态更改 gridview 列的标题文本

c# - 解决 .NET Core 启动中的 Hangfire 依赖项/HttpContext

c++ - 模板类和类属性也是模板