C#顯示接口實作和隐式接口實作
在項目中可能會遇到顯示接口實作和隐式接口實作。什麼意思呢?簡單來說使用接口名作為方法名的字首,這稱為“顯式接口實作”;傳統的實作方式,稱為“隐式接口實作”。隐式接口實作如下:

interface ISkill
{
void Flying();
}
//隐式實作ISkill接口
public class Bird: ISkill
{
public void Flying()
{
}
}

我們在隐式實作接口下可以這樣調用:

1 //第一種調用方式
2 Bird bird = new Bird();
3 bird.Flying();
4
5 //第二種調用方式
6 ISkill secondBrid = new Bird();
7 secondBrid.Flying();

直接用類和接口都可以調用Flying方法。
顯示接口實作如下:

interface ISkill
{
void Flying();
}
public class Bird : ISkill
{
//方法名稱為接口名.方法名
void ISkill.Flying()
{
}
}

ISkill secondBrid = new Bird();
secondBrid.Flying();
Bird bird = new Bird();
bird.Flying();
- 當類實作一個接口時,通常使用隐式接口實作,這樣可以友善的通路接口方法和類自身具有的方法和屬性。
- 當類實作多個接口時,并且接口中包含相同的方法簽名,此時使用顯式接口實作。即使沒有相同的方法簽名,仍推薦使用顯式接口,因為可以辨別出哪個方法屬于哪個接口。
- 隐式接口實作,類和接口都可通路接口中方法。顯式接口實作,隻能通過接口通路。