Пример #1
0
        static void Main(string[] args)
        {
            {
                User user1 = new User("Tom", 23, "MacOS");
                user1.Interacted += Message;
                user1.LaunchApp();
                user1.CheckState();
                user1.CloseApp();
                user1.CheckState();
                user1.LaunchApp();
                user1.OnComputing += Add;//Works only if App is launched
                user1.Calculation(7, 7);
                user1.OnComputing += Multiply;
                user1.Calculation(7, 7);

                Console.WriteLine("//////  Разное поведение у разных объектов  /////");

                Admin admin1 = new Admin("Pete", 26, "Windows");
                admin1.Interacted += Message;
                admin1.LaunchApp();
                admin1.CheckState();
                Console.WriteLine();

                User user2 = new User();
                user2.Interacted += Update;
                user2.CheckState();
                user2.CloseApp();
                Console.WriteLine();

                Admin admin2 = new Admin();
                admin2.Interacted += Update;
                admin2.LaunchApp();
                admin2.CheckState();

                Console.WriteLine("////////  Тест задания 1  /////////");
                user2.Interacted += ActionNotification;
                user2.Interacted -= Update;//Снимаем обработчик Update с события Interacted
                user2.Replace(25);

                admin1.Interacted -= Message;//Снимаем обработчик Message с события Interacted
                admin1.Interacted += ActionNotification;
                admin1.Compress(3);


                Console.WriteLine("\n////////  Тест задания 2  /////////\n");

                StringEditor str1 = new StringEditor("Какая-то... прелестная. строка.");
                str1.GetString();
                DeleteDots(str1);
                str1.GetString();
                AddSymbols(0, "qwe", str1);
                str1.GetString();
                AddSymbols(3, "zxc", str1);
                str1.GetString();
                AddSymbols(15, "abc", str1);
                str1.GetString();
                AddSymbols(34, "poi", str1);
                str1.GetString();
                AddSymbols(45, "asd", str1);
                str1.GetString();
                CutString(3, 3, str1);
                str1.GetString();
                MakeUpperCase(str1);
                str1.GetString();
                DeleteSpaces(str1);
                str1.GetString();

                Console.WriteLine("\n////////  Настоящий тест задания 2  /////////\n");

                StringEditor          str2          = new StringEditor("П р и в е т . . . м и р");
                Action <StringEditor> strOperations = DeleteDots;
                strOperations(str2);
                strOperations = DeleteSpaces;
                strOperations(str2);
                str2.GetString();
            }

            Console.WriteLine("\n##################\n");
            StringEditor        str3       = new StringEditor("My. -.name. -.is.- Nikita.");
            Func <StringEditor> deleteDots = DeleteDots2;
            Func <StringEditor, Func <StringEditor> > deleteSpaces = DeleteSpaces2;
            Func <int, string, StringEditor, Func <StringEditor, Func <StringEditor> > > addSymbols = AddSymbols2;
            Func <StringEditor, Func <int, string, StringEditor, Func <StringEditor, Func <StringEditor> > > > makeUpperCase = MakeUpperCase2;
            Func <int, int, StringEditor, Func <StringEditor, Func <int, string, StringEditor, Func <StringEditor, Func <StringEditor> > > > > cutString = CutString2;

            cutString(4, 7, str3, makeUpperCase);

            str3.GetString();


            Console.Read();
        }