当前位置:  开发笔记 > 编程语言 > 正文

你如何管理C#中的确定性终结?

如何解决《你如何管理C#中的确定性终结?》经验,为你挑选了1个好方法。

我有一个C#对象,其中一个关键资源需要在非常具体的时间点刷新,这使得它成为一个糟糕的候选者,让垃圾收集器无论什么时候处理它,我应该如何处理它?是否有类似C++的删除操作符,让我在需要时手动终止该对象的实例?



1> Jeff Yates..:

你在找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);
   }
}

要使用它,您可以执行以下操作:

public void DoingMyThing()
{
   using (MyDisposableObject obj = new MyDisposableObject())
   {
      // Use obj here.
   }
}

using关键字确保在其作用域的末尾调用Dispose()on方法IDisposable.

推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有