C# 介面的隱式與顯示實現

來源:互聯網
上載者:User

標籤:oid   強制   ace   public   標識   通過   沒有   強制類型轉換   實現   

介面隱式實現: 

interface IAnimal
{
  void Dog();
}
class Animal:IAnimal
{
  public void Dog()
  {
    Console.WriteLine("dog...");
  }
 }

通過類調用

Animal animal = new Animal();
animal.Dog();

或者通過類調用

IAnimalanimal = new Animal();
animal.Dog();

 

介面顯示實現:

interface IAnimal
{
  void Dog();
}

class Animal:IAnimal
{
  void IAnimal.Dog()
  {
    Console.WriteLine("dog...");
  }
}

只能通過介面調用

IAnimal animal = new Animal();

animal.Dog();

用類的方法去實現時會報錯,不允許,“顯示介面實現”只允許介面實現。如果真想用類來實現呢,那必須要進行一下強制類型轉換。

Animal animal = new Animal();
(animal as IAnimal).Dog();

 

顯示介面實現與隱式介面實現的適應情境

1、當類實現一個介面時,通常使用隱式介面實現,這樣可以方便的提供者方法和類自身具有的方法和屬性。

2、當類實現多個介面時,並且介面中包含相同的方法簽名,此時使用明確介面實作。即使沒有相同的方法簽名,仍推薦使用顯式介面,因為可以標識出哪個方法屬於哪個介面。

3、隱式介面實現,類和介面都可提供者中方法。明確介面實作,只能通過介面訪問。

C# 介面的隱式與顯示實現

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.