09 December 2016

IDisposable – Özel Interface

Garbage Collector bellekteki kullanım dışı kalmış nesnelerin bir mekanizma sayesinde otomatik olarak sistemden kaldırılmasını sağlamaktadır. Kullandığımız nesneler ile ilgili işimiz bittiğinde onlara ait bellek kaynaklarının kesin olarak serbest bırakılmasını sağlamak isteyebiliriz. IDisposable interface’i bu aşamada devreye girer. Bu interface’i kullanmak istersek yazmış olduğumuz sınıfa IDisposable’i implement edip Dispose() metodunun içini doldurmamız gerekir.

IPattern.cs

class DPattern:IDisposable
 {
 private void Dispose(bool disposed)
 {
 if (disposed)
 {
 //managed kodları temizle
 }
 //unmanaged kodları temizle
}
public void Dispose()
 {
 this.Dispose(true);
 GC.SuppressFinalize(this);
 }
 ~DPattern()
 {
 Dispose(false);
 }
 }