/*c#'ta class sistemi ile matematiksel ve mantıksal operator
örnegi*/
using System;
public
class Bolum
{
private int Pay;
private int Payda;
// Pay ve paydayı gecerek yeni bir bölüm oluştur
public Bolum(int Pay, int
Payda)
{
this.Pay = Pay;
this.Payda = Payda;
}
// iki ye bölümü aşırı yükle ve toplamını döndür
public static Bolum
operator +(Bolum ilk,
Bolum ikinci)
{
/*her iki bölümünde paydaları eşitse
* ikinci bölümün payı ile birinci bölümün payını toplayıp
* birinci bölümün payına ekler */
if (ilk.Payda == ikinci.Payda)
{
return
new
Bolum(ilk.Pay + ikinci.Pay, ilk.Payda);
}
//ilk pay ile ikinci paydayı çarp ilk sonuca ekle.
int ilkSonuc = ilk.Pay
* ikinci.Payda;
//ikinci pay ile ilk payı çarp ikinci sonuca ekle
int ikinciSonuc = ikinci.Pay
* ilk.Payda;
/*yeni bir Bolum oluştur ilk sonuc ile ikinci sonucu topla,
* ilk payda ile ikinci paydayı çarp ve çıkan sonucu döndür*/
return new
Bolum(ilkSonuc + ikinciSonuc, ilk.Payda * ikinci.Payda);
}
// Bölümlerin eşit olup olmadığını test et
public static bool
operator ==(Bolum ilk,
Bolum ikinci)
{
/*ilk payda ikinci paydaya eşitse ve ilk pay ikinci paya
eşitse*/
if (ilk.Payda == ikinci.Payda
&& ilk.Pay == ikinci.Pay)
{
return
true;//true
döndür.
}
return false;//yukarıdaki
eşitlik sağlanmıyorsa false döndür.
}
//eşit değildir operatörü
public static bool
operator !=(Bolum ilk,
Bolum ikinci)
{
return !(ilk == ikinci);//ilk ve ikinci eşitdeğilse sonucu döndür.
}
public override bool
Equals(object o)//eşittir operatörü
{
if (!(o is
Bolum))
{
return
false;
}
return this == (Bolum)o;
}
// pay ve padanın arasına / ekleyerek döndür.
public override string
ToString()
{
String s = Pay.ToString()
+ "/" + Payda.ToString();
return s;
}
}
public
class Test
{
public void Run()
{
Bolum f1 =
new
Bolum(3, 4);
Console.WriteLine("f1: {0}", f1.ToString());
Bolum f2 =
new
Bolum(2, 4);
Console.WriteLine("f2: {0}", f2.ToString());
Bolum f3 = f1 + f2;
Console.WriteLine("f1 + f2 = f3: {0}", f3.ToString());
Bolum f4 =
new
Bolum(5, 4);
if (f4 == f3)//f4 ile f3 birbirine eşitse aşağıdaki kodu çalıştır.
{
Console.WriteLine("f4: {0} == F3: {1}", f4.ToString(),
f3.ToString());
}
if (f4 != f2)//f4 ile f2 eşit değilse aşağıdaki kodu çalıştır.
{
Console.WriteLine("f4: {0} != F2: {1}", f4.ToString(),
f2.ToString());
}
if (f4.Equals(f3))
//f4 ile f3 birbirine eşitse aşağıdaki kodu çalıştır.
{
Console.WriteLine("{0}.Equals({1})", f4.ToString(),
f3.ToString());
}
}
static void Main()/*purogramı daha iyi
anlayabilmek için buraya tıklayın F9 tuşuna basın
sonra F5 Tuşuna
basın ve F11 tuşuna basarak program içinde ilerleyin*/
{
Test t = new
Test();
t.Run();
}
}

