简单问题。使用类型化数据集表适配器时使用using语句很重要吗?我在网上看到的大多数例子都不使用using语句。
using (Data_ItemTableAdapter adapter = new Data_ItemTableAdapter())
{
DataItemTable = a.GetDataByDataItemID(DataItemID);
// more code here
}
感谢您的帮助!!
编辑:似乎普遍的共识是在这种情况下使用“使用”可能是一个好主意,因为它肯定不会受到伤害,并且它不需要太多努力。只是不确定是否值得回顾这个旧项目并更改所有代码。谢谢你的建议!
答案 0 :(得分:6)
如果一个类实现了IDisposable
接口,那么将对象包装在using
语句中或手动调用Dispose
方法可能更安全。
在这种情况下,我不相信数据适配器正在使用任何未管理的资源,因此dispose可能不会做任何事情。但是,包装它会更安全,因为将来它可以。
答案 1 :(得分:4)
如果某些东西实现了IDisposable,我建议大部分时间使用()包装它。自动调用Dispose()+ Try / Finally免费?很难被击败。
答案 2 :(得分:2)
在这种特殊情况下,这并不重要,但要知道你需要深入了解适配器。
一般来说,如果有疑问,肯定不会受到伤害,如果它有Dispose(),请使用using
。
答案 3 :(得分:2)
如果某些东西实现了dispose,那就意味着它可能实现了自定义终结器。调用dispose应该(如果写得正确)抑制CG调用它。如果要求CG调用类的终结器,则CG将不得不在从内存中删除对象时做额外的工作。它会将它推广到CG的下一个级别,因此该对象将在内存中停留更长时间。
因此,即使您认为调用它并不重要,但无论如何它可能是一个好主意,因为它很可能允许更有效的垃圾收集。事实上,如果Dispose存在,它可能是有原因的,应该使用。将它放在using语句中是解决这个问题的最简单方法。
的信息