C# Operatör, Sayısal türde yada string türde iki farklı nesneyi toplamak yada birleştirmek için genellikle ‘+’ operatörünü kullanıyoruz bizde bir sınıf oluşturup bu sınıf içerisinde 2-3 farklı operatör tanımlayıp bunlarla ilgili nasıl işlem yapacağımızı göreceğiz.
Metodlarda overloading işlemi yaptığımız gibi operatörlerdede aşırı yükleme olayının nasıl yapıldığını bu makalede ele alacağız. Örneğimizde Name, Age ve Salary özelliklerine sahip Person adlı bir sınıf kullanacağız ve bu sınıfları ‘-‘, ‘!=’, ‘+’, ‘==’ gibi operatörleri kullanarak işlem yapacağız.Matematiksel işlemlerimizde sürekli kullandığımız int, byte, float, decimal gibi v.b. tiplerin tamamında operatör tanımları yer almaktadır. Örnek olarak Decimal yapısına ait Operatör Aşırı Yükleme tanımlarını alttaki görselden görebilirsiniz.Daha öncede bahsettiğimiz
Üstteki Person.cs adlı sınıfta metod tanımı içerisinde operator anahtar kelimesi ile gördüğünüz metodlar operatör tanımlarıdır. Biz bu örneğimizde ‘==’, ‘!=’ ve ‘-‘ operatörlerinin tanımı ve ilgili metodların kullanımını göreceğiz.
Person sınıfından murat ve sakine adında nesne oluşturduk ve constructor metodunu kullanarak özelliklerin değerlerini vermiş olduk.sakine – murat satırında Person sınıfına tanımladığımız – operatörü ile sakine nesnesi içerisindeki Salary adlı değişkeninin değerinden murat nesnesi içerisindeki Salary adlı değişkenin değeri çıkartılıyor ve böylelikle konsol ekranına 1500 bastırılmış oluyor.sakine == murat kodunun yer aldığı satırda Person sınıfında yer alan == operatörüne ait metodun içerisinde sakine ve murat değişkenlerine ait Name adında özelliğin birbirine eşitliği kontrol ediliyor ve aynı olmadığı için konsol ekranına False yazılıyor.sakine != murat kodunun yer aldığı satır ise bir üstteki açıklamanın tam tersi yani sakine ve murat adındaki değişkenin Name adındaki özelliklerin değerlerinin birbirine eşit olmadığını doğrulamaya yarıyor ve birbiriyle eşit olmadığı için konsol ekranına
✍ Lütfen olumlu-olumsuz tüm görüşlerinizi bana yorum yada mail yolu ile iletmeyi ihmal etmeyin.🔗 Sosyal medya kanallarından makaleyi paylaşarak destek olursanız çok sevinirim.👋 Bir sonraki makalede görüşmek dileğiyle.
C# Operatör Aşırı Yükleme(Operator Overloading) Nedir, Örnekli Nasıl Kullanılır?
İçerik
göster
Person
adlı sınıfımız özellikleri, operatör tanımları şu şekilde olacak.C#(Person.cs)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | namespace MHG.Operators { public class Person { public Person(string name, int age, decimal salary) { Name = name; Age = age; Salary = salary; } public string Name { get; set; } public int Age { get; set; } public decimal Salary { get; set; } /// <summary> /// Eşitlik kontrolü yapan metodu override edip sınıfımıza göre uyarladık ve Operatör metodlarının /// bazılarında kullandık bu metodu. /// </summary> /// <param name="obj"></param> /// <returns></returns> public override bool Equals(object obj) { return this.Name == (obj as Person).Name; } /// <summary> /// Eğer p parametresinde Name ile p2 parametresindeki Name eşit ise True dönecek. /// </summary> /// <param name="p"></param> /// <param name="p2"></param> /// <returns>Boolean değer dönecek.</returns> public static bool operator ==(Person p, Person p2) { return p.Equals(p2); } /// <summary> /// Eğer p parametresinde Name ile p2 parametresindeki Name eşit değil ise True dönecek. /// </summary> /// <param name="p"></param> /// <param name="p2"></param> /// <returns>Boolean değer dönecek.</returns> public static bool operator !=(Person p, Person p2) { return !p.Equals(p2); } /// <summary> /// p adlı parametrenin Salary(Maaş) değerinden p2 parametresindeki maaş değeri /// çıkartılıp geriye decimal tipte sonuç dönecek. /// </summary> /// <param name="p"></param> /// <param name="p2"></param> /// <returns>Decimal tipte maaş sonucu geri dönecek.</returns> public static decimal operator -(Person p, Person p2) { return p.Salary - p2.Salary; } public static decimal operator +(Person p, Person p2) { return p.Salary + p2.Salary; } } } |
C#(Program.cs)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | using System; namespace MHG.Operators { class Program { static void Main(string[] args) { var murat = new Person("Murat ÖNER", 25, 7500); var sakine = new Person("Sakine SALMANLI", 22, 9000); var salary = sakine - murat; Console.WriteLine(salary); Console.WriteLine(sakine == murat); Console.WriteLine(sakine != murat); Console.ReadKey(); } } } |
True
yazılıyor.Çıktı
C# Operatör Aşırı Yükleme Makale Özeti
Konuyu en basitiyle anlatmaya çalıştım eğer anlaşılmayan bir durum varsa yorum ile geri dönüş sağlarsanız yada Soru-Cevap sayfamızdan yazarsanız en hızlı şekilde yardımcı olmaya çalışırım.📚 C# Operatör Aşırı Yükleme Benzeri Kaynaklar
- C# Switch Case Nedir, Örnekli Nasıl Kullanılır?
- C# random number / rastgele sayı üretme nasıl yapılır?
✍ Lütfen olumlu-olumsuz tüm görüşlerinizi bana yorum yada mail yolu ile iletmeyi ihmal etmeyin.🔗 Sosyal medya kanallarından makaleyi paylaşarak destek olursanız çok sevinirim.👋 Bir sonraki makalede görüşmek dileğiyle.