"Dispoable pattern with c#4.0 & vs2010" (可使用C# 4.0和VS2010的可处理模式)

12 浏览
0 Comments

"Dispoable pattern with c#4.0 & vs2010" (可使用C# 4.0和VS2010的可处理模式)

这个问题已经有了答案:

可能是重复的问题:

C# Finalize/Dispose pattern

我该如何正确实现可处理模式(IDisposable接口)与vs2010和c#4? 一个快速的例子和一个重要的提示会很好。

我知道有c#2的例子,但更多地是问c#4的。

编辑:好的,请删除这个问题(我不能)。我现在看到,关于对象处理方面,从c#2.0到4.0没有任何改变。

admin 更改状态以发布 2023年5月20日
0
0 Comments

基本模式。

    /// 
    /// Dispose Method
    /// 
    public void Dispose()
    {
        Dispose(true);
        GC.SuppressFinalize(this);
    }
    /// 
    /// Deconstructor
    /// 
    ~[PutYourClassHere]()
    {
        Dispose(false);
    }
    /// 
    /// IDisposable Implementation
    /// 
    /// Disposing Flag
    protected virtual void Dispose(bool disposing)
    {
        if (disposing)
        {
            //Free Managed Resources
        }
        //Free Native Resources 
    }

0
0 Comments

与以前版本的C#一样。建议的模式沿着这些线路进行:

class MyClass : IDisposable
{
    ~MyClass()
    {
        Dispose(false);
    }
    public void Dispose()
    {
        Dispose(true);
        GC.SuppressFinalize(this);
    }
    private bool disposed = false;
    protected virtual void Dispose(bool disposing)
    {
        if (!disposed)
        {
            if (disposing)
            {
                // Dispose managed resources
            }
            // Dispose unmanaged resources
            disposed = true;
        }
    }
}

详情请参见此MSDN页面

0