是什麼的代碼下面的兩個片段之間的區別:「使用」和範圍界定之間的區別?
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