Operatörlerin Aşırı Yüklenmesi

C# içerisinde kullanılan operatörleri uygulamamızda kolayca kullanabilmekteyiz. Peki kendi tanımlayacağımız operatörler olabilirmi, bilmiyorum bu hususu hiç düşündünüzmü! Hoca bu nasıl olur diye soracak olursanız (Hocam Bumudur! Sevgili Semih’e), olur gerçekten olur ve çok kullanışlıdır.

Konuyu örneklendirecek olursak, iki tamsayı tipli değişkeni aralarına “+” işareti koyarak toplatabiliyorsunuz. Sonuç her zaman doğru olacaktır. Peki iki üçgen sınıfını araya yine “+” işareti koyarak toplatabilirmisiniz. Normal şartlarda bunu bilgisayar anlayamayacaktır. Fakat ona bir yol gösterirseniz bu durumda sizin operatörünüzü kullanarak işlemi düzgün şekilde sonlandıracaktır. Peki iki üçgeni nasıl toplatabiliriz diye extra bir soru daha soracak olursanız, bu yorum tamamen sizlere kalmıştır. Benim iki üçgenin toplatılıp elde edilmesi gereken değere vereceğim ad yeni bir dörtgen olacaktır.

C#’ta kullandığınız bir çok operatör için yeniden kodlama yapabilirsiniz. Biz en belirginlerini örneklendirerek sizleri aydınlatmaya çalışacağız. Bir operatör aşağıdaki şekilde kolayca farklı amaçlar için kullanılmak üzere yeniden görevlendirilebilir. Biz örneğimiz için “*” operatörünü kullandık. Şimdi aşağıdaki kodları sayfanıza ekleyiniz.

namespace Ornek
{
class A
{
public int Veri;
public A(int Deg)
{
Veri = Deg;
}
public static A operator *(A Ilk, A Son)
{
A Yeni = new A(Ilk.Veri * Son.Veri);
return Yeni;
}
}
}

Yukarıdaki örnek kodlamadan sonra formunuza aşağıdaki kod bloğunu ekleyiniz.

private void button7_Click(object sender, EventArgs e)
{
A Ben = new A(10);
A Sen = new A(25);
A Sonuc = Ben * Sen;
this.Text =”Sonuç=” + Sonuc.Veri.ToString();//250 Yazar
}