顯示實現益處 1:隱藏代碼的實現 2:在使用接口訪問的系統中,調用者只能通過接口調用而不是底層的類來訪問。
顯示實現接口說明:
1、不能在方法調用、屬性訪問以及索引指示器訪問中通過全權名訪問顯式接口成員執行體。事實上,顯式接口成員執行體只能通過接口的實例,也就是僅僅引用接口的成員名稱來訪問;
2、顯式接口成員執行體不能使用任何訪問限制符,也不能加上abstract, virtual, override或static 修飾符,即使是public也不可以;
3、顯式接口成員執行體和其他成員有著不同的訪問方式。因為不能在方法調用、屬性訪問以及索引指示器訪問中通過全權名訪問,顯式接口成員執行體在某種意義上是私有的。但它們又可以通過接口的實例訪問,也具有壹定的公有性質;
4、只有類在定義時,把接口名寫在了基類列表中,而且類中定義的全權名、類型和返回類型都與顯式接口成員執行體完全壹致時,顯式接口成員執行體才是有效的;
5、壹個類中既顯示又隱式的實現接口,這時顯式實現方法只能通過接口的引用來直接訪問,隱式實現方法只可以通過類的實例來直接訪問;
6、壹個類如果實現惡劣多個接口,並且這多個被實現的接口含有相同簽名的接口聲明,那麽如果其中有壹個被顯式實現,那麽其它接口中同簽名的方法也必須被顯式實現。
為什麽要顯示實現接口呢,有如下好處:
1、因為顯式接口成員執行體不能通過類的實例進行訪問,這就可以從公有接口中把接口的實現部分單獨分離開。如果壹個類只在內部使用該接口,而類的使用者不會直接使用到該接口,這種顯式接口成員執行體就可以起到作用。
2、顯式接口成員執行體避免了接口成員之間因為同名而發生混淆。如果壹個類希望對名稱和返回類型相同的接口成員采用不同的實現方式,這就必須要使用到顯式接口成員執行體。如果沒有顯式接口成員執行體,那麽對於名稱和返回類型不同的接口成員,類也無法進行實現。