当我的类包含套接字和事件时如何实现 Dispose 模式?
应该是这样的吗?
class MyClass
{
Socket m_ListenerSocket = new Socket();
book m_Disposed=false;
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
private void Dispose(bool isDisposing)
{
if (!m_Disposed)
{
if (isDisposing)
{
if (m_ListenerSocket != null)
{
m_ListenerSocket.Dispose();
innerClass.Notify -= Notify;
}
}
//finalized unmanged code here
m_Disposed = true;
}
}
~MyClass()
{
Dispose(false);
}
}
我很困惑......套接字类是“托管代码c#版本的winSock”吗?所以它应该在用户调用 dispose 的情况下被释放(“isDisposing IS true”)事件处理程序呢?
所以在最终的评论部分应该只释放 Inptr 对象?谢谢。