是什么的代码下面的两个片段之间的区别:“使用”和范围界定之间的区别?
using (Object o = new Object())
{
// Do something
}
和
{
Object o = new Object();
// Do something
}
我一直在使用using
了很多开始,但我很好奇,什么比实际好处用于确定对象的范围。
编辑:有用的花絮,我从这场耗时:
乔恩斯基特:
注意,这并不强制垃圾回收以任何方式,形状或形式。垃圾收集和提示资源清理有点正交。
威尔Eddins评论:
除非你的类实现了IDisposable接口,并具有的Dispose()函数,你不使用使用。
这是否公平地说出这一点,当你需要清理你的班级可能拥有的非托管资源时,这种情况最为适用?还是它也适用于纯管理类? – 2009-10-30 16:20:53
+1关于垃圾收集的说明,我总是有一种忘记它的倾向... – jdehaan 2009-10-30 16:21:35
好吧,用于存储数据结构的典型对象不会从使用子句中看到任何好处,但会看到一个较重的对象IDisposable会? – Kelsey 2009-10-30 16:21:44