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

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

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

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

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

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

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


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

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

13   голосов , оценка 4.385 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы