凡是实现了IDisposable接口的类都要使用using?我认为视情况而定吧。
C#通过.NET Framework公共语言运行库(CLR)来自动释放用来存储不再需要的对象的内存。内存的释放具有不确定性;一旦CLR决定执行垃圾回收,就会释放内存。但是,通常最好尽快释放诸如文件句柄和网络连接这样的有限资源。using 语句允许程序员指定使用资源的对象应当何时释放资源。为using语句提供的对象必须实现IDisposable接口。此接口提供了Dispose方法,该方法将释放此对象的资源。
也就是说,.Net垃圾回收机制会处理一切需要释放内存的对象。但是,由于有些资源比较珍贵,或者说有些资源不立即释放会影响程序性能甚至发生未知错误,所以需要程序员去控制。而using就可以帮助程序员方便处理这个问题,因为using会自动调用对象的Dispose()方法。- <p>using(A a = new A())</p><p>{</p><p> //使用a对象代码</p><p>}</p><p>//using结束后自动调用a.Dispose()
- </p><p> </p>
复制代码 |