我正在爲我的公司清理一些C#代碼,並且我一直注意到的一件事是構建此應用程序的承包商將對象引用設置爲空。是否有任何理由在finally塊中將對象設置爲null?
例子:
get {
Object o = new Object(); // create a new object that is accessed by the reference 'o'
try {
// Do something with the object
}
finally {
o = null; // set the reference to null
}
}
據我瞭解,在創建對象仍然存在。根據是否有其他參考信息,現在有可能無法訪問它,但在GC出現並清理之前它仍然存在。
是否有任何理由在finally塊中有這個?有沒有可能導致內存泄露的情況?
謝謝!
聽起來像是VB(經典)程序員,他們並沒有去研究.NET內存管理與VB的COM管理有什麼不同。 –
我想這是一種很好的處理方法 –
@MatiCicero:不,它不是。這是一個典型的貨物崇拜節目的例子,它揭示了缺乏理解。 –