Конструкция try catch c объектами класса - C#
Формулировка задачи:
Добрый день. Есть класс для хранения денежной суммы. По заданию нужно делать перегрузку операторов. Возникли проблемы с вычитанием двух объектов, поскольку нужно , если получается отрицательная разность, то должна срабатывать мною сделанная исключительная ситуация.
Вот перегрузка операторов
Исключительная ситуация
В main'е
Главное, что с допустим с int - выми значениями все работает
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") { }
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 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; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д