.Net中托管资源的回收可以使用try…finally的方式进行回收,也可以使用using关键字进行回收,前提是要回收的资源已经实现IDisposal接口。实际上using在内部实现的也是try…finally的方式进行资源释放的。
如果需要释放的资源有两个以上,且其类型相同,使用using可以应付的来,如下代码:
using (Image image = Image.FromFile(@"E:/Demo1.bmp"), image2 = Image.FromFile(@"D:/Demo2.bmp")){}<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
但是如果是两个类型不同的资源,则不能这样使用using,最好也不要使用嵌套的using,因为一旦里层的using出现异常,外层using内的资源是得不到释放的,这种情况最好还是采用try….finally方法进行释放。但是仍然有途径可以使用using关键字。上面说过,使用using关键字进行释放资源的资源都是实现了IDisposal接口的,于是可以这样:
using(IDisposal cls1 = new Class1(),cls2 = new Class2())
{
//这里面再把cls1和cls2转换为要使用的类型
}
.Net中托管资源的回收可以通过try…finally或using关键字实现。using适用于已实现IDisposal接口的资源,尤其当需处理多个同类资源时更为便捷。不同类型的资源建议使用try…finally确保异常时仍能正常释放。
312

被折叠的 条评论
为什么被折叠?



