Exemple #1
0
        static void Main(string[] args)
        {
            NumberAdding lisattavaLuku = new NumberAdding();

            NumberSubtraction vahennettavaLuku = new NumberSubtraction();

            Number ekaLuku    = new Number(-10, lisattavaLuku, vahennettavaLuku);
            Number tokaLuku   = new Number(-5, lisattavaLuku, vahennettavaLuku);
            Number kolmasLuku = new Number(0, lisattavaLuku, vahennettavaLuku);
            Number neljasLuku = new Number(5, lisattavaLuku, vahennettavaLuku);
            Number viidesLuku = new Number(10, lisattavaLuku, vahennettavaLuku);

            NumberAdding      toinenLisattavaLuku    = new NumberAdding();
            NumberSubtraction toinenVahennettavaLuku = new NumberSubtraction();

            Number kuudesLuku    = new Number(27, toinenLisattavaLuku, toinenVahennettavaLuku);
            Number seitsemasLuku = new Number(-97, toinenLisattavaLuku, toinenVahennettavaLuku);

            Console.WriteLine("Demo, jossa testataan Events- ja " +
                              "Delegates-toiminnallisuuksia C#-ohjelmointikielessä.\n\n" +
                              "Ohjelma käynnistyy automaattisesti muutaman sekunnin kuluttua...");

            System.Threading.Thread.Sleep(10000);
            Console.Clear();

            lisattavaLuku.AddOne();
            vahennettavaLuku.SubtractOne();

            lisattavaLuku.AddTwo();
            vahennettavaLuku.SubtractTwo();

            lisattavaLuku.AddThree();
            vahennettavaLuku.SubtractThree();

            lisattavaLuku.AddFour();
            vahennettavaLuku.SubtractFour();

            lisattavaLuku.AddFive();
            vahennettavaLuku.SubtractFive();

            Console.WriteLine("\n----\n\n" +
                              "Pieni lisätesti toisilla NumberAdding- ja NumberSubtraction -luokan muuttujilla " +
                              "sekä kahdella Number-luokan edustajalla:\n\n");

            toinenLisattavaLuku.AddFive();
            toinenLisattavaLuku.AddOne();

            toinenVahennettavaLuku.SubtractThree();
            toinenVahennettavaLuku.SubtractTwo();
        }
        public Number(int numberForModify, NumberAdding numToAdd, NumberSubtraction numToSubtract)
        {
            _numberForModify = numberForModify;
            _numToAdd        = numToAdd;
            _numToSubtract   = numToSubtract;

            _numToAdd.AddNum += (object sender, NumberModifyingEventArgs args) =>
            {
                Console.WriteLine("Lukuun {0} lisätään {1}.", _numberForModify, args.exactNumber);
                Console.ForegroundColor = ConsoleColor.Yellow;

                switch (args.exactNumber)
                {
                case 1:
                    Console.WriteLine("{0} + 1", _numberForModify);
                    _numberForModify += 1;
                    break;

                case 2:
                    Console.WriteLine("{0} + 2", _numberForModify);
                    _numberForModify += 2;
                    break;

                case 3:
                    Console.WriteLine("{0} + 3", _numberForModify);
                    _numberForModify += 3;
                    break;

                case 4:
                    Console.WriteLine("{0} + 4", _numberForModify);
                    _numberForModify += 4;
                    break;

                case 5:
                    Console.WriteLine("{0} + 5", _numberForModify);
                    _numberForModify += 5;
                    break;
                }

                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine("Summa ja uusi luku on: {0}", _numberForModify);
                Console.ResetColor();

                Console.WriteLine();
            };

            _numToSubtract.SubtractNum += (object sender, NumberModifyingEventArgs args) =>
            {
                Console.WriteLine("Luvusta {0} vähennetään {1}.", _numberForModify, args.exactNumber);
                Console.ForegroundColor = ConsoleColor.Magenta;
                switch (args.exactNumber)
                {
                case 1:
                    Console.WriteLine("{0} - 1", _numberForModify);
                    _numberForModify -= 1;
                    break;

                case 2:
                    Console.WriteLine("{0} - 2", _numberForModify);
                    _numberForModify -= 2;
                    break;

                case 3:
                    Console.WriteLine("{0} - 3", _numberForModify);
                    _numberForModify -= 3;
                    break;

                case 4:
                    Console.WriteLine("{0} - 4", _numberForModify);
                    _numberForModify -= 4;
                    break;

                case 5:
                    Console.WriteLine("{0} - 5", _numberForModify);
                    _numberForModify -= 5;
                    break;
                }

                Console.ForegroundColor = ConsoleColor.Blue;
                Console.WriteLine("Erotus ja uusi luku on: {0}", _numberForModify);
                Console.ResetColor();

                Console.WriteLine();
            };
        }