天天看點

C# 接口的隐式與顯示實作

隐式實作的話實作的方法屬于實作的類的,可以直接通過類的對象通路,顯式實作的話方法是屬于接口的,可以看成是寄托在類中實作的,通路這些方法時要先把對象轉換成接口對象,然後通過接口對象調用      
一般來講顯式實作用得比較少,但是在實作具有相同名稱和簽名的兩個接口方法時就必須用到了。

      

在實際項目中,有時某個類往往會繼承多個接口,而接口中往往會有一些相同名稱、參數與類型的值。通過顯式接口實作可以為避免一些不必要的歧義(我在項目中碰到的不多,可能是因為項目太小的原因吧)。

  顯示接口實作與隐式接口實作的适應場景

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