static void Main(string[] args)
        {
            ICutDownNotifier[] interfaceArray = new ICutDownNotifier[3]; // работаем с массивом объектов типа IcutDownNotifier
            ReversTimer[]      RtArray        = new ReversTimer[3];

            Console.Write("Введите имя первого таймера: ");
            RtArray[0] = new ReversTimer(Console.ReadLine());
            Console.Write("Установите время: ");
            interfaceArray[0] = new TimerMethod(Convert.ToInt32(Console.ReadLine()));

            Console.Write("Введите имя второго таймера: ");
            RtArray[1] = new ReversTimer(Console.ReadLine());
            Console.Write("Установите время: ");
            interfaceArray[1] = new TimerMethod(Convert.ToInt32(Console.ReadLine()));

            Console.Write("Введите имя третьего таймера: ");
            RtArray[2] = new ReversTimer(Console.ReadLine());
            Console.Write("Установите время: ");
            interfaceArray[2] = new TimerMethod(Convert.ToInt32(Console.ReadLine()));
            Console.WriteLine();

            for (int i = 0; i < interfaceArray.Length; i++)
            {
                interfaceArray[i].init(RtArray[i]);
                interfaceArray[i].Run(RtArray[i]);
                Console.WriteLine();
            }
        }
        public void init(ReversTimer RtInit)
        {
            RtInit.start += delegate(string source, string name)
            { Console.WriteLine($"Старт обратного отсчёта {name}:"); };

            RtInit.left += delegate(string source, string name, int N)
            { Console.WriteLine($"У таймера {name} осталось секунд: {N} "); };

            RtInit.end += delegate(string source, string name)
            { Console.WriteLine("Обратный отсчёт завершён"); };
        }
 public void Run(ReversTimer RtInit) // метод Run без возврата значения
 {
     RtInit.go(time);
 }
 public void init(ReversTimer RtInit)
 {
     RtInit.start += Starting; // добавление обработчика (подписываемся на событие)
     RtInit.left  += Waiting;  // добавление обработчика (подписываемся на событие)
     RtInit.end   += TheEnd;   // добавление обработчика (подписываемся на событие)
 }
 public void Run(ReversTimer RtRun)
 {
     RtRun.go(time);
 }
 public void Run(ReversTimer RtRun) // метод Run
 {
     RtRun.go(time);
 }