Example #1
0
    public static void Main(string[] args)
    {
        GoodBye g = new GoodBye();

        Console.WriteLine(g.bye() == "good bye");

        GG gg = new GG();

        Console.WriteLine(gg.bye() == "GG");

        GoodBye g1 = new GG();

        Console.WriteLine(g1.bye() == "good bye");

        GG ggg = new GGG();

        Console.WriteLine(ggg.bye() == "GG");

        GGG ggg2 = new GGG();

        Console.WriteLine(ggg2.bye() == "GGG");

        GoodBye g2 = new GGG();

        Console.WriteLine(g2.bye() == "good bye");

        GG gg2 = new GGG();

        Console.WriteLine(gg2.bye() == "GG");

        // GG gg3 = new GoodBye();               // 문법적으로 오류
    }
 public static void Parting(Person person, GoodBye bye, int time)
 {
     if (bye != null)
     {
         bye(person.Name);
     }
 }
Example #3
0
    public static void Main()
    {
        Hello    h = new Hello("stranger");
        GoodBye  g = new GoodBye("my friend");
        Farewell f = new Farewell("you fool");

        h.speak();
        g.speak();
        f.speak();
    }
 public static void Main(string[] args)
 {
     while (true)
     {
         Person john = new Person {
             Name = "John"
         };
         Person bill = new Person {
             Name = "Bill"
         };
         Person mary = new Person {
             Name = "Mary"
         };
         Person ann = new Person {
             Name = "Ann"
         };
         Hello   greetByJohn   = new Hello(john.Greet);
         Hello   greetByBill   = new Hello(bill.Greet);
         Hello   greetByMary   = new Hello(mary.Greet);
         Hello   greetByAnn    = new Hello(ann.Greet);
         Hello   greetByAll    = null;
         GoodBye goodByByJohn  = new GoodBye(john.Leave);
         GoodBye goodByeByBill = new GoodBye(bill.Leave);
         GoodBye goodByeByMary = new GoodBye(mary.Leave);
         GoodBye goodByeByAnn  = new GoodBye(ann.Leave);
         GoodBye goodByeByAll  = null;
         john.Came += Percon_Came;//todo pn подписка на событие должна быть внутри класса Person. Собственно, как и реакции на события прихода/ухода. Переделать.
         john.OnCame(9);
         Creeting(john, greetByAll, 9);
         greetByAll   += greetByJohn;
         goodByeByAll += goodByByJohn;
         bill.Came    += Percon_Came;
         bill.OnCame(10);
         Creeting(bill, greetByAll, 10);
         greetByAll   += greetByBill;
         goodByeByAll += goodByeByBill;
         john.Left    += Percon_Left;
         john.Leaver(14);
         greetByAll   -= greetByJohn;
         goodByeByAll -= goodByByJohn;
         Parting(john, goodByeByAll, 14);
         ann.Came += Percon_Came;
         ann.OnCame(15);
         Creeting(ann, greetByAll, 15);
         greetByAll   += greetByAnn;
         goodByeByAll += goodByeByAnn;
         mary.Came    += Percon_Came;
         mary.OnCame(18);
         Creeting(mary, greetByAll, 18);
         greetByAll   += greetByMary;
         goodByeByAll += goodByeByMary;
         ann.Left     += Percon_Left;
         ann.Leaver(21);
         greetByAll   -= greetByAnn;
         goodByeByAll -= goodByeByAnn;
         Parting(ann, goodByeByAll, 21);
         bill.Left += Percon_Left;
         bill.Leaver(22);
         greetByAll   -= greetByBill;
         goodByeByAll -= goodByeByBill;
         Parting(bill, goodByeByAll, 22);
         mary.Left += Percon_Left;
         mary.Leaver(23);
         greetByAll   -= greetByMary;
         goodByeByAll -= goodByeByMary;
         Parting(mary, goodByeByAll, 23);
         Console.Write("For close program use button Escape(Esp): ");
         ConsoleKeyInfo c = Console.ReadKey();
         if (c.Key == ConsoleKey.Escape)
         {
             break;
         }
     }
 }