Конструкция try catch c объектами класса - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день. Есть класс для хранения денежной суммы. По заданию нужно делать перегрузку операторов. Возникли проблемы с вычитанием двух объектов, поскольку нужно , если получается отрицательная разность, то должна срабатывать мною сделанная исключительная ситуация. Вот перегрузка операторов
public static Money operator-(Money m1, Money m2)
        {
            return new Money { Summ = m1.Summ - m2.Summ };
        }
public static bool operator < (Money l, int r)
        {
            return new Money (l.Summ) < r;
        }
        public static bool operator >(Money l, int r)
        {
            return new Money (l.Summ) > r;
        }
Исключительная ситуация
[Serializable]
        public class MyException : ApplicationException
        {
        
        public MyException() : base("Your are a bankrupt")
        {
            
        }
В main'е
Money m = new Money(356.34);
            Money m2 = new Money(1112.64);
 
try
            {
                Money m4 = m - m2;
                if (m4 < 0)
                {
                    throw new MyException();
                }
                //Console.Write($"{m} / {m3} = ");
                m4.TotalSum();
            }
            catch (MyException ms)
            {
                Console.WriteLine(ms.Message);
            }
Главное, что с допустим с int - выми значениями все работает
int a = 5;
            int b = 6;
            try
            {
                int c = a - b;
                if(c < 0)
                {
                    throw new MyException();
                }
            }
            catch(MyException ms)
            {
                Console.WriteLine(ms.Message);
            }

Решение задачи: «Конструкция try catch c объектами класса»

textual
Листинг программы
public static bool operator < (Money l, int r)
        {
            return new Money (l.Summ) < r;
        }
        public static bool operator >(Money l, int r)
        {
            return new Money (l.Summ) > r;
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.385 из 5
Похожие ответы