ClientBase<T>
クラスがインターフェイスを明示的に実装していることは理解してIDisposable
いますが、なぜそれが明示的に行われたのかわかりません。
ClientBase は IDisposable メンバーを実装していません
MyClient
から派生した場合、この方法でオブジェクトをClientBase<T>
明示的に取得できません:Dispose
MyClient client = new MyClient();
client.Dispose();
基になるインターフェイスにキャストするか、using
ステートメント デザイン パターンを使用してオブジェクトの有効期間を実装しない限り、次のようになります。
((IDisposable)client).Dispose();
MicrosoftがこのクラスのDispose
メソッドを公開し、開発者が明示的に呼び出すことができる場合に、明示的なインターフェイスの実装を介してこのクラスのメソッドを非表示にする利点は何ですか?
クラスClientBase<T>
が競合するメソッド宣言を持つ 2 つの異なるインターフェイスを実装しているわけではないため、見逃しているものがない限り、この状況では明示的なインターフェイスの実装は不要であることがわかります.....