Конструкция 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;
}