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(); }; }