我知道ClientBase<T>
類明確實現了IDisposable
接口,但我不明白爲什麼它明確地做了。 ClientBase doesn't implement IDisposable member爲什麼.NET BCL類ClientBase明確地實現IDispose
如果MyClient
從ClientBase<T>
派生我不能明確地Dispose
的對象是這樣的:
MyClient client = new MyClient();
client.Dispose();
除非我投給底層接口或實現與using
聲明設計模式的對象的生命週期:
((IDisposable)client).Dispose();
Microsoft通過expli隱藏了Dispose
方法對這個類有什麼好處當他們可以公開它並允許開發者明確地調用它時,Cit接口的實現是什麼?
它不是彷彿類ClientBase<T>
正在實施衝突的方法聲明兩個不同的接口,因此我認爲顯式接口實現在這種情況下不必要的,除非有什麼我已經錯過了..........
這可能是誰實施'ClientBase'的設計選擇。一個廣泛的隱式與顯式接口實現可以[在這裏找到](http://stackoverflow.com/questions/143405/c-sharp-interfaces-implicit-implementation-versus-explicit-implementation)。 –
(雖然我將這個問題標記爲重點關注不同課程的重複問題,但這是一個普遍的問題,接受的答案涵蓋了一般的設計原則)。 –