/*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();

    }

}

 

  Sponsor link