Son Haberler
Anasayfa / Yazılım / C# / Operator Overloading – Operatörlerin Aşırı Yüklenmesi

Operator Overloading – Operatörlerin Aşırı Yüklenmesi

Nesne yönelimli programlama tekniğinin en önemli özelliklerinden birisi de operatörlerimize kendi oluşturduğumuz classlar için yeni anlamlar yükleyebilmektir. Bu işleme operator overloading yani operatörlerin aşırı yüklenmesi denilir. Peki nedir bu operatör overloading ve niçin yapılır diye düşünürsek, en basit açıklamayı şu şekilde yapabiliriz. Örnek olarak int türünden iki nesnenin toplanabilmesi için biz ?+? operatörünü kullanmaktayız. Bu operetör ile yapılan işlem sonucu bize ne dönecektir bunu biliyoruz. Temel veri türleri için bu operatörlere tasarım aşamasında ilgili görevleri zaten verilmiştir ve biz bunlara müdahale edemeyiz. Ancak, kendi oluşturduğumuz classlarımızda buna müdahale edebiliyoruz. Örneğin bir classımız olsun, bu class ile ürettiğimiz iki instance?ı toplamak istediğimizi düşünelim. İşte bu durumda class içinde toplama yapıldığında bize cevap olarak program ne dönecek kendisi bilemez, bunun cevabını bizim kendimizin tanımlaması gerekmektedir. Dolayısı ile bu durumda operatörlerin aşırı yüklenmesine başvurmak gerekir.

Operetörleri yeniden yüklerken bazı dikkat edilecek hususlar söz konusudur. Bunları şu şekilde sıralayabiliriz :

? Operatör metotların isimleri için ?operator? anahtar sözcüğü kullanılmalıdır.
? Operatör metotları ?public static? olarak tanımlanmalıdır.
? Bütün operatör metotlarının mutlaka en az bir parametresi olmalıdır.
? Operatör metotları aynen metotlar gibi aşırı yüklenebilir, örneğin operator * ?nın birden fazla yüklenmiş durumu olabilir.
? Unary (tekil) operatör metotlarında parametre mutlaka ilgili sınıf türünden olmalıdır. Binary (ikili) operatör metotlarında ise en az bir parametre ilgili sınıfın türünden olmalıdır.

Operatörlerin aşırı yüklenmesi konusunu birkaç farklı yazıda örnekleyip anlatacağım. Bu yazımız genel bir bilgi niteliğinde olmuş oldu.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir