C#清理对象资源的最佳方法

时间:2019-02-20 11:04:58

标签: c# destructor

我有一个带有一些SerialPort的类。一旦类对象被删除(或被新的myClass()覆盖),就应该关闭串行端口。

class CDummy
{
   SerialPort port;
   public CDummy(string port_name)
   {
        //do stuff to open port
   }
   ~CDummy()
   {
   if (port.IsOpen)
   {
       try
       {
           port.Close();
       }
       catch (Exception ex)
       {
         log.Error("Failed to close comport", ex);
       }
   }
}

现在来自C ++,我希望析构函数称为ony call

Dummy my_object = new Dummy("COM1");
//do something
//I'd expect that the destructor is called now
my_object = new Dummy("COM2");

  load 

由于某种原因,现在不调用析构函数get。我读到这与GC有关。我可以通过覆盖Dispose()来实现所需的行为吗?

0 个答案:

没有答案