- Finalizer digunakan untuk destruct instance dari class.
Keterangan :
- Finalizer tidak dapat didefinisikan dalam structs. Mereka hanya digunakan dengan class.
- Sebuah class hanya bisa memiliki satu finalizer.
- Finalizer tidak bisa inherited atau overloaded.
- Finalizer tidak bisa dipanggil. Mereka dipanggil secara otomatis.
- Sebuah finalizer tidak mengambil modifiers atau memiliki parameter. Misalnya, berikut ini adalah deklarasi finalizer untuk class Car.
class Car
{
~Car() // destructor
{
// cleanup statements...
}
}
Sebuah finalizer juga bisa diimplementasikan sebagai ekspresi body definition, seperti contoh berikut.
using System;
public class Destroyer
{
public override string ToString() => GetType().Name;
~Destroyer() => Console.WriteLine($"The {ToString()} destructor is executing.");
}
finalizer secara implisit memanggil finalizer pada base class objek. Oleh
karena itu, panggilan ke finalizer secara implisit diterjemahkan ke code berikut :
protected override void Finalize()
{
try
{
// Cleanup statements...
}
finally
{
base.Finalize();
}
}
ConversionConversion EmoticonEmoticon