Опишите класс экономического двоичного счетчика
Это может звучать как сама задача: он может увеличивать или уменьшать свое значение на единицу в заданном диапазоне. Предоставляется значение инициализации. При отсутствии за границей делаются исключения.
А теперь я хотел бы спросить вас, все ли соответствует этому условию или я что-то упускаю?
Что я уже пробовал:
using System; namespace laba7 { public class Program { public static void Main() { int x, y, z; Console.WriteLine("Начало решения"); Console.WriteLine("Введите значение"); x = int.Parse(Console.ReadLine()); Console.WriteLine("Введите минимум"); y = int.Parse(Console.ReadLine()); Console.WriteLine("Введите максимум"); z = int.Parse(Console.ReadLine()); Counter counter = new Counter(x, y, z); counter--; Console.WriteLine("Ответ: {0}", counter.Value); Console.WriteLine("Конец решения"); Console.ReadLine(); } class Counter { int val; public int Value { get { return val; } set { val = value; InRange(); } } private int min { get; set; } private int max { get; set; } public Counter(int _val, int _min, int _max) { min = _min; max = _max; Value = _val; } public Counter(int _min, int _max) { min = _min; max = _max; Value = new Random().Next(min, max + 1); } public static Counter operator ++(Counter c) { c.Value++; return c; } public static Counter operator --(Counter c) { c.Value--; return c; } void InRange() { try { if (val > max || val < min) throw new ArgumentOutOfRangeException("Значение не в заявленном диапазоне."); } catch (ArgumentOutOfRangeException e) { Console.WriteLine($"Ошибка: {e}"); } } } } }
Richard MacCutchan
Работает ли он в соответствии с требованиями?
Grampy Cat
Ну, вроде бы да, но, например, он добавляет или вычитает единицу только в зависимости от этой строки в начале, но должно ли это быть так?
Counter counter = new Counter(x, y, z); counter--;