Implicit / Explicit Implementation of Interface in C#
介面繼承的成員實作有兩種方法,分別為 Implicit 及 Explicit(C# Primer 翻作「顯示實現」)。
使用 Explicit 的方式來實作的物件,在使用時必須明確宣告介面名稱,才能調用介面中定義的成員,而使用一般 Implicit 的方式實作的物件可以直接調用成員而不必進行宣告或轉型的動作。
因此,若介面中有定義 Value Type 的成員時,使用 Explicit 的方式來實作將面臨 Boxing 所損失效能的問題。
什麼時候會用到 Explicit 的方式來實作呢?在參考資料的第二個連結有解說。在多重繼承介面時,若多個介面中有相同名稱的成員,使用 Explicit Implementation 可以避免問題的產生。
參考資料:
Implicit / Explicit Implementation of Interface in C#
留言