建構函式和終結器
C#實際上沒有解構函式,而是使用 C++樣式解構函式語法的終結器。指定解構函式會覆蓋無法直接呼叫的 Object.Finalize()
方法。
與具有類似語法的其他語言不同,當物件超出範圍時,不會呼叫這些方法,但在垃圾收集器執行時會呼叫這些方法,這在某些條件下會發生。因此,不保證它們以任何特定順序執行。
終結應負責清理非託管資源只 (經由 Marshal 類獲取的指標,通過 P 接收/呼叫(系統呼叫)或不安全的塊中使用的原始指標)。要清理託管資源,請檢視 IDisposable,Dispose 模式和 using
語句。
(進一步閱讀: 我什麼時候應該建立一個解構函式? )