正確實作 IDisposable
在 .NET 中,實作 IDisposable 介面需要仔細考慮,以避免資源外洩和異常。最近在嘗試在自訂類別中實作 IDisposable 時遇到的問題導致了混亂。
提供的程式碼片段引發了程式碼分析錯誤 (CA1063),表示 IDisposable 的實作不正確。要理解這個問題,必須掌握 IDisposable 背後的原理。
何時實作IDisposable
當類別管理時,需要實作IDisposable
對一次性物件的參考:如果一個類別保留實作 IDisposable 的其他類別的實例。
致電GC.SuppressFinalize: 新增GC.SuppressFinalize( this);在Dispose 方法的結尾,以防止在明確處置後執行終結。
public class User : IDisposable { // ... public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } protected virtual void Dispose(bool disposing) { // ... } }
以上是如何在.NET中正確實作IDisposable以避免資源洩漏和CA1063錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!