1
8
我认为这是因为当一个成员 显式实现时,不能通过类实例访问,只能通过接口的实例访问。 因此,在这种情况下,使某个“虚拟”的东西真正没有意义,因为虚拟意味着您打算在继承的类中重写它。实现接口 明确地 和 制造它 事实上的 会是矛盾的。这也可能是编译器不允许这样做的原因。 为了解决这个问题我想 csharptest.net's 或 Philip's 答案听起来像是在耍花招 |
2
6
|
3
3
根据C语言规范:
只有从显式接口实现中调用虚拟方法,才能“绕过”它。 |
4
3
你必须这样做:
通常这是一种更好的方法,因为内部方法可以在不更改接口的情况下更改签名。举个更真实的单词例子:
在这里,您可以看到添加了iorderdetails2,我们可以安全地重构现有的虚拟方法(从而为派生生成编译时错误)。此外,这通常允许您在基本实现类中提供公共功能、日志记录和异常处理… |
5
0
不能将虚拟修饰符与static、abstract和 私有的 或重写修饰符。 默认修饰符是private |