我做不到
interface InterfaceA
{
void MethodA();
}
class ClassA : InterfaceA
{
virtual void InterfaceA.MethodA()
// Error: The modifier 'virtual' is not valid for this item
{
}
}
以下工作的地方
class ClassA : InterfaceA
{
public virtual void MethodA()
{
}
}
为什么?如何规避呢?
最佳答案
我认为这是因为,当成员是的显式实现时,不能通过类实例进行访问,而只能通过接口(interface)的实例进行访问。
因此,在这种情况下,实际上使“虚拟”的东西没有任何意义,因为虚拟意味着您打算在继承的类中覆盖它。显式实现一个接口(interface)和使其成为虚拟接口(interface)将是矛盾的。这也可能是编译器不允许这样做的原因。
要解决此问题,我认为csharptest.net's或Philip's答案听起来很有效