我做不到

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'sPhilip's答案听起来很有效

09-25 22:00