繁体   English   中英

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

[英]Implicit end explicit implementation of same method from interface?

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

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

    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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM