在使用数据库连接的时候,经常要用Using语句来释放资源。但是像我这样刚从VB转过来的人根本不知道要这么写,以为close了连接九行了。问题来了----什么情况下要用Using语句来释放资源?是有规则的,还是完全是特例的?
解决方案 »
- winform控件无操作判断
- sql 2005 问题
- access数据库更新问题~
- 加载设计器时错误
- 如何在知道checkbox名称的情况下,将其转换为checkbox控件?
- 一引用EXCEL原先申名的DataTable就出错.为什么?
- 我录制的 C# 和 WinForms 视频,初学者来看哦~
- 请问C#中Hashtable容器是干什么用的?具体点些(在线等待!!)
- 水晶报表的登陆失败的问题
- NotifyIcon控件设置一个透明ico,但是显示的图标是黑色的
- [100F]求教如何获取本程序集的guid值,或获取其他程序集的guid值呢??
- 两个ListView,将一个ListView中的数据 ,根据所选项 拖到另一个ListView中去
using只提供了一个自动、方便的语法
没人规定你要这么做
你需要告诉垃圾回收机制,在使用完对象马上调用对象的dispose()方法将对象占用的资源马上释放掉
{
}
finally
{
o.Dispose();
}
这样的好处是非托管资源立即会被释放(托管资源则不会)。即使你不用using,也不手动调用Dispose,.NET CLR会保证通过调用Finalize回收非托管资源。当然,这意味着多费一些时间,而且如果对象没有很好的实现Dispose模式的话,还可能会造成非托管资源泄漏。