タイトルが言うように:
TcpClient はどのように IDisposable を実装し、パブリック Dispose メソッドを持たないことができますか?
タイトルが言うように:
TcpClient はどのように IDisposable を実装し、パブリック Dispose メソッドを持たないことができますか?
明示的なインターフェイスの実装を使用する。それ以外の
public void Dispose()
{
...
}
それは持っているだろう
void IDisposable.Dispose()
{
...
}
他のさまざまなタイプがこれを行います。場合によっては ( と のサポートIEnumerable.GetEnumerator
などIEnumerable<T>.GetEnumerator
) 必要がない場合もあれば、具象型がわかっている場合に、より適切な API を公開する場合もあります。
を参照してくださいexplicit interface implementation
。TcpClient
のインスタンスを明示的にtoにキャストするか、ブロックIDisposable
でラップする必要があります。using() {...}
明示的に実装するクラスは、多くの場合、代わりにIDisposable
パブリック メソッドを提供することに注意してください。Close()