簡體   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