0
我有構造函數中寫入文件頭的類。然後用戶調用將數據塊寫入流的方法。然後在Dispose中,我正在寫尾部數據。寫入流/ finalyze處理方法
我不想提取任何具體的方法,因爲它會破壞封裝並且用戶總是忘記調用它。使用「使用」構造是非常優選的。
我想知道這是否在概念上正確地寫入Dispose中的任何東西?
我有構造函數中寫入文件頭的類。然後用戶調用將數據塊寫入流的方法。然後在Dispose中,我正在寫尾部數據。寫入流/ finalyze處理方法
我不想提取任何具體的方法,因爲它會破壞封裝並且用戶總是忘記調用它。使用「使用」構造是非常優選的。
我想知道這是否在概念上正確地寫入Dispose中的任何東西?
確定它是正確的。框架中的許多類都是這樣。例如FileStream
將沖刷其Dispose
,它將寫入該文件的緩衝區。同爲BufferedStream
,StreamWriter
等
只是不Finalize
(終結,又名~YourClass
)混淆Dispose
- 這是不一樣的東西,依靠這一個將是一個非常糟糕的事情™。
看起來像理解我可能有什麼概念性問題 - Dispose不應該拋出異常。如果我有複雜的代碼 - 在Dispose上跟蹤異常可能很痛苦。 – Vitaliy
是的,你應該避免在'Dispose'中出現異常,出於同樣的原因,你應該在'finally'塊中避免它們:它們可以掩蓋'try'部分中的實際異常。有時這是不可避免的(儘管如此,關閉寫入時的I/O錯誤)。 –
您是否有任何樣本/或設計名稱,在用戶完成類別狀態後寫入最終數據? – Vitaliy