C#

C# Yok Ediciler (Destructors)

yokedici

Bir önceki yazımda C#’ta yapılandırıcılara değinmiştim. Şimdi sıra ürettiklerimizi yok etmeye geldi :). Program çalışırken üretilen bazı nesneler bir süre sonra boşa çıkabilir. Bu boşa çıkan nesneleri C# çöp toplayıcılar (garbage collector) ile ortadan kaldırmaktadır. Ancak bunun ne zaman yaptığını biz farketmiyoruz. Bu sayede biz elimizi bile sürmeden Ram ‘de gereksiz yer kaplayan nesneler ortadan kaldırılmış oluyor. Ancak bazen bu nesneleri biz kaldırmak isteriz. Bunda çöp toplayıcının bazen hiç çalışmadan programın kapanabileceği ihtimalinin etkiside var tabi ki. İşte tam bu anlarda imdadımıza yok ediciler(destructor) yetişiyor. Yalnız bu yöntem genellikle kullanılan bir yöntem değildir. Bazı ileri düzey özel durum ve şartlar gerekmektedir. Biz yinede aklımızın bir köşesinde bulunsun diyerek konuya devam edelim.

Öncelikle yok edicilerin tanımlaması şu şekilde yapılır:

~sınıf-adı() {

}

Yapı olarak yapılandırıcılara benziyor, ancak herhangi bir dönüş değeri ve erişim belirteci almaz. Başında ise (~) karakteri bulunuyor.

Yine bir örnek üzerinden yapıyı inceleyelim:

Bahsettiğim gibi yukarıdaki örnekte yaptığımız işlemi C# kendisi de yapabilir. Ancak ne zaman yapacağını veya yapıp yapmayacağını bilmiyoruz. Kısaca kodu özetlersek öncelikle nesnelerimizi üretip aynı zamanda ilk değerlerimizi atıyoruz. Daha sonra kullanılmayan nesneleri C# tanımladığımız yok ediciyi kullanarak siliyor.

Siz de debug yaparak yukarıdaki kodların nasıl çalıştığını daha yakından inceleyebilirsiniz.

Bol kodlu günler dilerim 🙂

İstanbul’un amatör seyyahı. Kod yazmak hayat felsefesi. Android, Java, C# ve Javascript’le yakından, tüm teknoloji dünyasıyla uzaktan ilgileniyor. Drone meraklısı ama sahibi değil.