public override bool Equals(object obj)
 {
     try
     {
         if (obj == null)
         {
             return(false);
         }
         RationalNumbers rationalnumber = obj as RationalNumbers; // возвращает null если объект нельзя привести к типу Bank
         return(rationalnumber.numerator == this.numerator && rationalnumber.denominator == this.denominator);
     }
     catch (System.NullReferenceException)
     {
         return(false);
     }
 }//переопределение Equals
Exemple #2
0
    public static RationalNumbers operator+(RationalNumbers a, RationalNumbers b)
    {
        RationalNumbers cloneA = new RationalNumbers(a.Numerator, a.Denominator);
        RationalNumbers cloneB = new RationalNumbers(b.Numerator, b.Denominator);

        if (cloneA.Denominator >= cloneB.Denominator)
        {
            AddOrSubtract(cloneA.Denominator, cloneB.Denominator, cloneA, cloneB);
        }
        else
        {
            AddOrSubtract(cloneB.Denominator, cloneA.Denominator, cloneB, cloneA);
        }

        return(new RationalNumbers(cloneA.Numerator + cloneB.Numerator,
                                   cloneA.Denominator));
    }
Exemple #3
0
    private static void AddOrSubtract(int largerNum, int smallerNum,
                                      RationalNumbers largerObj, RationalNumbers smallerObj)
    {
        int aTemp = largerObj.Denominator;
        int bTemp = smallerObj.Denominator;

        if (smallerNum % largerNum == 0)
        {
            smallerObj.Denominator = largerObj.Denominator;
        }
        else
        {
            smallerObj.Denominator *= largerObj.Denominator;
            largerObj.Denominator  *= bTemp;
        }

        largerObj.Numerator  *= largerObj.Denominator / aTemp;
        smallerObj.Numerator *= smallerObj.Denominator / bTemp;
    }