我有一个C#对象,其中一个关键资源需要在非常具体的时间点刷新,这使得它成为一个糟糕的候选者,让垃圾收集器无论什么时候处理它,我应该如何处理它?是否有类似C++的删除操作符,让我在需要时手动终止该对象的实例?
Jef*_*tes 21
你在找IDisposable
.这是一个实现它的示例类.
class MyDisposableObject : IDisposable
{
public MyDisposableObject()
{
}
~MyDisposableObject()
{
Dispose(false);
}
private bool disposed;
private void Dispose(bool disposing)
{
if (!this.disposed)
{
if (disposing)
{
// Dispose of your managed resources here.
}
// Dispose of your unmanaged resources here.
this.disposed = true;
}
}
void IDisposable.Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
}
Run Code Online (Sandbox Code Playgroud)
要使用它,您可以执行以下操作:
public void DoingMyThing()
{
using (MyDisposableObject obj = new MyDisposableObject())
{
// Use obj here.
}
}
Run Code Online (Sandbox Code Playgroud)
该using
关键字确保在其作用域的末尾调用Dispose()
on方法IDisposable
.
归档时间: |
|
查看次数: |
8613 次 |
最近记录: |