TcpClient如何实现IDisposable并且没有公共Dispose方法?

时间:2010-02-24 11:27:18

标签: .net idisposable tcpclient

正如标题所说:

TcpClient如何实现IDisposable并且没有公共的Dispose方法?

2 个答案:

答案 0 :(得分:11)

使用explicit interface implementation。而不是

public void Dispose()
{
    ...
}

它会有

void IDisposable.Dispose()
{
    ...
}

其他各种类型的人这样做;有时它是不必要的(例如支持IEnumerable.GetEnumeratorIEnumerable<T>.GetEnumerator),有时它是在已知具体类型时公开更合适的API。

答案 1 :(得分:3)

explicit interface implementation。您需要将TcpClient的实例显式转换为IDisposable,或将其包装在using() {...}块中。请注意,明确实现IDisposable的类通常会提供公共Close()方法