我正在阅读有关 C# 中的析构函数的内容,但我无法为其找到合适的用例。
有人可以提供一个用法示例并进行解释吗?
非常非常感谢。
Update
书中的代码示例实现了 Destructor 和 Dispose() 方法,请参阅书中的代码片段。
class MyClass
{
bool disposed = false; // Disposal status
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
~MyClass()
{
Dispose(false);
}
protected virtual void Dispose(bool disposing)
{
if (disposed == false)
{
if (disposing == true)
{
// Dispose the managed resources. Factored Dispose
}
// Dispose the unmanaged resources.
}
disposed = true;
}
}
Marko
终结器是very现在很少需要了。他们used当您可以直接访问本机资源时需要 - 但现在您通常应该使用SafeHandle http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.safehandle.aspx反而。
乔·达菲有一个关于这个的优秀帖子 http://www.bluebytesoftware.com/blog/PermaLink.aspx?guid=86c71425-57bc-4fcb-b34b-3262812f12cf其中涉及的细节比我自己写的要多——所以去读吧:)
关于术语的快速说明:ECMA 版本的 C# 规范将它们称为终结器; Microsoft 版本的规范始终将它们称为析构函数,并将继续这样做。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)