隐式结束从接口显式实现相同方法

本文关键字:方法 实现 接口 结束 | 更新日期: 2023-09-27 18:27:14

在什么情况下,从接口隐式结束显式实现同一方法是有意义的?

我知道区别,但我不知道为什么有时两者都用?

    interface I1
    {
        void A();
    }
    class B : I1
    {
        public void A()
        {
            Console.WriteLine("Implicit ");
        }
        void void I1.A()
        {
            Console.WriteLine("Explicit");
        }
    }

隐式结束从接口显式实现相同方法

例如,您可以这样做,使方法protected可以通过接口访问。

这样,调用方只能通过接口声明访问它,或者如果它是从类派生的。不能从类本身或派生类访问显式接口成员。

class B : I1
{
    protected void A()
    {
        Console.WriteLine("Implicit ");
    }
    void void I1.A()
    {
        Console.WriteLine("Explicit");
    }
}
I1 i = new B();
i.A(); // works
B b = new B();
b.A(); // does not work