我的項目有很多閱讀器和編寫器類。我開始實施IDisposable,但我相信它爲我的課程添加了許多樣板代碼。對於每個類,我需要實現:有什麼辦法可以減少IDisposable的樣板代碼量?
- 析構函數。
- Dispose()方法。
- A Dispose(bool disposing)方法。
- 「bool disposed」字段。
- 檢查對象是否已在每個公共方法中處理。
- 文檔(因爲我啓用了文檔標誌,否則編譯器會發出警告)。
我的問題:
是否值得實現IDisposable?以前,我用我的類,如:
using (Stream s = File.OpenRead("myfile.bin"))
x = new SomethingReader(s).ReadSomething();
有了IDisposable的,它並沒有太大的改善:
using (SomethingReader r = new SomethingReader(File.OpenRead("myfile.bin")))
x = r.ReadSomething();
我只能實現Dispose()方法?
我的類不使用非託管資源,所以Dispose(false)什麼也不做。由於我正在清理的是IDisposable,所以在處理對象之後調用我的方法應該拋出一個ObjectDisposedException,因爲我正在使用一個已經處理過的對象。
如果您建議實施完整的IDisposable模式,是否有任何方法來減少樣板代碼?
編輯:由於一些答案建議封閉班級,我可以證實,實際上封閉班級沒有任何問題。