假設我想使用2個實現IDispose模式的類。其中一個類使用另一個類來實例化,但之後不需要。在堆疊「使用」關鍵字時,這將導致(例如)在使用字體期間鎖定的文件。我想要在完成「編碼美容」原因後立即解鎖文件。
看看下面的「標籤」系統。爲什麼代碼塊是分層的?加分:寫我的代碼塊的美麗方式
using1 (Stream stream = File.OpenRead("font.ttf"))
using2 (Font font = FontExtensions.FromStream(stream, 32))
ENDusing1
//use font here
ENDusing2
層次方式,代碼塊如何設計,施加(美)限制在當前的處理。當然,這可以通過使用try/finally塊來解決,但這些都不是很好。
我錯過了使用(lol?)嵌套IDisposable對象/流的基本設計嗎?
請在標籤代碼塊上分享您的意見和解決此問題的最佳方法(編碼美容)。
最裏面的'using'塊將被退出並佈置第一。 – IAbstract
我不確定它*可以* try */finally來解決,因爲你有相同的嵌套限制,但你可以通過手動調用'.Dispose()'來解決它。 –