Конструкция 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;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д