这里是剧透......
我正在查看 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/