掌握C#中的資源管理,Finalize
和Dispose
>Finalize
>
Dispose
有效的資源管理對於C#開發至關重要。本文闡明了
方法的角色,指導您進行適當的實現。 >
了解最終器 ~ClassName()
的需求
)對於處理非託管資源至關重要。 但是,即使僅管理託管資源的課程也可能需要最終確定器,如果這些託管資源內部與不受管理的資源進行交互。仔細考慮是關鍵。 >
託管與未管理的資源決定包括最終制度的呈現您的班級是直接還是間接利用非託管資源的決定。 與垃圾收集器(GC)管理的資源(包括文件手柄,數據庫連接和網絡插座)不同。 他們的存在強烈表明需要最終制度。 >
IDisposable
IDisposable
即使沒有直接不管理的資源使用量,實施using
>接口也提供了一種有價值的資源清理機制。 這允許客戶使用IDisposable
>語句,以確保適當的處置。 但是,僅
> 說明性示例
Dispose
示例代碼(簡短省略)演示了一個無直接不受管理資源使用的類。 因此,最終制度是不必要的。
>
Dispose
>利用方法
Dispose
using
using
可以由客戶端明確調用或通過
塊中顯示自動調用。
間接非管理資源用法
WebClient
班可能會通過其依賴性間接使用不管理的資源。儘管IDisposable
(例如)實現了SafeHandle
,這意味著潛在的不受管理的資源使用情況,但這並不總是很明顯。 內部不受管理的資源管理的使用和類似類的使用不會自動授權最終確定。
最佳實踐摘要
用於與非管理資源互動的課程:IDisposable
模式。 Dispose
以上是我什麼時候應該使用c#'s'最終化”和' dispose”方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!