使用 C# 和 Managed Extensions for C++ 解構函式語法
您不可以在 C# 或 Managed Extensions for C++ 程式語言中覆寫 Object.Finalize 方法。C# 和 Managed Extensions 提供解構函式做為撰寫最終處理程式碼的機制。您必須在 C# 和 Managed Extensions 中使用解構函式語法來執行清除作業。這些語法很方便,因為它會以隱含方式呼叫物件之基底類別的 Finalize 方法。這樣可以保證對衍生目前類別之解構函式的所有層級呼叫 Finalize。
以下程式碼範例是針對解構函式所撰寫的。
~MyClass()
{
// Perform some cleanup operations here.
}
這個程式碼隱含地轉譯為下列情形。
protected override void Finalize()
{
try
{
// Perform some cleanup operations here.
}
finally
{
base.Finalize();
}
}
**注意 **雖然它們看起來相似,但是 C# 和 Managed Extensions 解構函式在語意 (Semantics) 上與 Unmanaged C++ 解構函式並不相同。Managed 程式碼不支援任何類似 C++ 解構函式的語意。
請參閱
清除 Unmanaged 資源 | 覆寫 Finalize 方法 | Object.Finalize 方法 | C# 語言參考 1.7.9 解構函式