可能重複Dispoable模式:
C# Finalize/Dispose pattern用C#4.0和Visual Studio 2010
我應該如何去實現一次性模式(IDisposable接口)與VS2010和C#4正確?一個簡單的例子和重要的提示會很好。
我知道有c#2的例子,但要求更多的c#4。
編輯:好吧,請刪除問題(因爲我不能)。我現在看到,自從c#2.0到4.0之後,對象處置方面的任何內容都沒有改變。
可能重複Dispoable模式:
C# Finalize/Dispose pattern用C#4.0和Visual Studio 2010
我應該如何去實現一次性模式(IDisposable接口)與VS2010和C#4正確?一個簡單的例子和重要的提示會很好。
我知道有c#2的例子,但要求更多的c#4。
編輯:好吧,請刪除問題(因爲我不能)。我現在看到,自從c#2.0到4.0之後,對象處置方面的任何內容都沒有改變。
與先前版本的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;
}
}
}
有關詳細信息,請參閱this MSDN page。
基本模式。
/// <summary>
/// Dispose Method
/// </summary>
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
/// <summary>
/// Deconstructor
/// </summary>
~[PutYourClassHere]()
{
Dispose(false);
}
/// <summary>
/// IDisposable Implementation
/// </summary>
/// <param name="disposing">Disposing Flag</param>
protected virtual void Dispose(bool disposing)
{
if (disposing)
{
//Free Managed Resources
}
//Free Native Resources
}
Adobe是什麼?你在這裏錯過了一些重要的信息...... – 2011-04-15 14:55:37