相关疑难解决方法(0)

这个IDisposable实现是否正确?

我永远不会记住实现IDisposable接口的所有规则,因此我尝试提出一个基类来处理所有这些并使IDisposable易于实现.我只是想听听你的意见,如果这个实现是好的,或者你是否看到我可以改进的东西.该基类的用户应该从它派生,然后实现两个抽象方法ReleaseManagedResources()ReleaseUnmanagedResources().所以这是代码:

public abstract class Disposable : IDisposable
{
    private bool _isDisposed;
    private readonly object _disposeLock = new object();

    /// <summary>
    /// called by users of this class to free managed and unmanaged resources
    /// </summary>
    public void Dispose() {
        DisposeManagedAndUnmanagedResources();
    }

    /// <summary>
    /// finalizer is called by garbage collector to free unmanaged resources
    /// </summary>
    ~Disposable() { //finalizer of derived class will automatically call it's base finalizer
        DisposeUnmanagedResources();
    }

    private void DisposeManagedAndUnmanagedResources() {
        lock (_disposeLock) …
Run Code Online (Sandbox Code Playgroud)

.net c# dispose idisposable

1
推荐指数
1
解决办法
2261
查看次数

标签 统计

.net ×1

c# ×1

dispose ×1

idisposable ×1