C# 关闭类内的SerialPort实例

C# 关闭类内的SerialPort实例,c#,serial-port,C#,Serial Port,我已经为控制电路创建了一个库类,它通过串行端口进行通信,并在WinForms中使用。初始化类时,串行端口打开 CircuitController controller = new CircuitController("Controller1", COM8, Baud9600, ...); 但是,当我退出WinForm应用程序时,关闭串行端口的适当方式是什么?是否应专门在控制器上调用此命令 (On close) --> controller.Shutdown(); 或者当窗体关闭时串行端

我已经为控制电路创建了一个库类,它通过串行端口进行通信,并在WinForms中使用。初始化类时,串行端口打开

CircuitController controller = new CircuitController("Controller1", COM8, Baud9600, ...);
但是,当我退出WinForm应用程序时,关闭串行端口的适当方式是什么?是否应专门在控制器上调用此命令

(On close) --> controller.Shutdown();

或者当窗体关闭时串行端口会自动关闭吗?

根据我的经验,当程序退出时端口会关闭(据我所知,当进程退出时,操作系统会关闭进程打开的所有句柄),但我相信大多数人都会同意显式关闭端口是最佳做法,根据您的第一个建议。

根据ildjarn的建议:

这里要做的最好的事情是实现
IDisposable
,并关闭那里的端口。您可以在MSDN上找到一些很好的示例代码:


正确的习惯用法是让你的类实现
IDisposable
,并在处理表单时处理你的类。@ildjarn,你应该把它作为一个答案发布。@Brad:我不想被卷入回答C问题中。.-]请随便把它作为答案贴出来,我会投上一票。@ildjarn,哈,好的。完成了,但主要是因为没有其他人发布它,而您在这里肯定有正确的答案。我宁愿投票给你。或者根据@ildjarn的建议,更好