C# proste dema: symulacja systemu alarmowego

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace Czujniki01
{
    class Czujnik
    {
        public Czujnik()
        {
            id = "Nienazwany";
            wlaczony = false;
        }
        public Czujnik(string n)
        {
            id = n;
            wlaczony = false;
        }
        public void wlacz()
        {
            wlaczony = true;
            Console.WriteLine(id + ": włączony");
        }
        public void wylacz()
        {
            wlaczony = false;
            Console.WriteLine(id + ": wyłączony");
        }
        public bool jestWlaczony()
        {
            return wlaczony;
        }
        public bool jestAlarm()
        {
            return gen.Next(2) == 1;
        }
        public string podajID()
        {
            return id;
        }
        private string id;
        private bool wlaczony;
        static private Random gen = new Random();
    }

    class SystemAlarmowy
    {
        public void dodaj(Czujnik czujnik)
        {
            czujniki.Add(czujnik);
        }
        public void pokazElementy()
        {
            Console.WriteLine("Aktualna zwartość systemu:");
            foreach (Czujnik czujnik in czujniki)
                Console.WriteLine(czujnik.podajID());
        }
        public void wlacz()
        {
            foreach (Czujnik czujnik in czujniki)
                czujnik.wlacz();
        }
        public void wylacz()
        {
            foreach (Czujnik czujnik in czujniki)
                czujnik.wylacz();
        }
        public bool jestAlarm()
        {
            bool wykrytoAlarm = false;
            foreach (Czujnik czujnik in czujniki)
                if (czujnik.jestWlaczony() && czujnik.jestAlarm())
                {
                    Console.WriteLine("Alarm na czujniku: " + czujnik.podajID());
                    wykrytoAlarm = true;
                }
            return wykrytoAlarm;

        }

        private ArrayList czujniki = new ArrayList();
    }

    class Program
    {
        static void Main(string[] args)
        {
            SystemAlarmowy systemDomowy = new SystemAlarmowy();
            Console.WriteLine("System alarmowy - aplikacja sterująca");

            systemDomowy.dodaj(new Czujnik("C01"));
            systemDomowy.dodaj(new Czujnik("C02"));
            systemDomowy.dodaj(new Czujnik("C03"));
            systemDomowy.pokazElementy();

            Console.WriteLine("\nWłącznie systemu");
            systemDomowy.wlacz();

            Console.Write("\nNacisnij dowolny klawisz by rozpocząć monitoring");
            Console.ReadKey();

            for (;;)
            {
                Console.Clear();
                Console.WriteLine("Nacisnij ESC by zakończyć monitorowanie");
                if (systemDomowy.jestAlarm())
                    Console.WriteLine("System zgłosił alarm!!!");
                if (Console.KeyAvailable)
                {
                    ConsoleKeyInfo info;
                    info = Console.ReadKey(true);
                    if (info.Key == ConsoleKey.Escape)
                        break;
                }
                Thread.Sleep(500);
            }
            Console.Clear();
            Console.WriteLine("\nWyłącznie systemu");
            systemDomowy.wylacz();

            Console.Write("\nNaciśnij dowolny klawisz by zakończyć program");
            Console.ReadKey();

        }
    }
}