很久以前,我從C/C++開始,我仍然有一個確保所有資源都被正確清理的習慣。我總是確保在IDisposable類上調用Dispose,並在包含一次性對象的類中實現Dispose模式。IDisposable,它真的很重要嗎
但是,在我的環境中,我或多或少是唯一這樣做的人。其他人只是不明白我在做什麼,認爲我的代碼更難理解。
他們只是創建數據庫連接,打開流等沒有調用關閉或處置。有時他們會在方法的末尾設置一個局部或成員變量爲「Nothing」(猜測他們的背景)。
我的問題是他們的代碼和我的一樣好。代碼隨着時間的推移會創建數千個數據庫連接對象。
因此,忽略任何關於代碼正確性的論點,遵循指導原則等,IDiposable真的很重要?
有沒有人從廢棄的物品中耗盡了資源?
編輯: 感謝您的回覆。有趣的是,看到有些人在不處置時有問題。這似乎很少見,但我認爲GC/JIT在正常情況下保持資源使用情況良好。
我的同事和我都不會因爲這個而改變行爲,但是感覺很好。
關於SO的許多問題都是「奇怪的東西發生」變種。我發現其中大約一半是由於未能處置而導致的,特別是如果它們只是通過某種循環發生第二次或隨後的時間。另一半是未處理的例外,順便說一句。 – 2010-03-17 20:00:13
我已經與其他人一樣使用IDisposible模式並收到了類似的反應。在這場衝突中你當然並不孤單。我懇求你不要妥協,因爲你的代碼「難以閱讀」。只是我2美分。 – 2010-03-17 20:04:43
如果沒有別的,__explicit__永遠比隱式更好,不管語言如何 – 2010-03-17 20:07:48