【发布时间】:2011-05-15 16:16:30
【问题描述】:
我想知道为什么 C# 不允许 private virtual 函数并遇到恰当命名的 Why are private virtual methods illegal in C#?
在接受的答案Eric Lippert(谁可能知道他在说什么......)说:
如果您希望限制在非嵌套派生类中重写方法的能力,那么您可以通过限制非嵌套类从基类派生的能力来实现;
在 C++ 中private: virtual 是有意义的,因为它意味着“我希望从我派生的类覆盖此函数的功能,但它们不应该直接调用它”,换句话说private 控制谁可以调用函数并且对谁可以覆盖它没有影响。
我意识到,由于首先只有派生类可以覆盖,并且由于 C# 禁止 private virtual 函数,所以这个问题可能没有意义,是否存在其他情况下函数的保护级别会影响谁可以覆盖它(@ 987654327@也许)?
【问题讨论】:
标签: c# c++ language-design private