示例#1
0
        static void Main(string[] args)
        {
            StringOps so = new StringOps();
            // delegate is a 'type'.
            // this acts a lot like a C++ functor.
            
            // delegate assigned an instance method
            strMod strOp = new strMod(so.replacesSpaces);
            string str;

            str = strOp("this is a test");
            Console.WriteLine("result:" + str);
            Console.WriteLine();

            // delegate assigned an instance method
            strOp = new strMod(so.removeSpaces);
            str = strOp("this is a test");
            Console.WriteLine("result:" + str);
            Console.WriteLine();

            // delegate assigned an static class method
            strOp = new strMod(reverse);
            str = strOp("this is a test");
            Console.WriteLine("result:" + str);
            Console.WriteLine();



        }
示例#2
0
        static void Main(string[] args)
        {
            StringOps so = new StringOps();
            // delegate is a 'type'.
            // this acts a lot like a C++ functor.

            // delegate assigned an instance method
            strMod strOp;
            strMod replaceMod = new strMod(so.replacesSpaces);
            strMod removeMod = new strMod(so.removeSpaces);
            strMod reverseMod = new strMod(reverse);
            string my_str = "this is a test";
            strOp = replaceMod;
            strOp += reverseMod;

            strOp(ref my_str);
            Console.WriteLine("result:" + my_str);
            Console.WriteLine();

            my_str = "this is a test";
            strOp -= replaceMod;
            strOp += removeMod;
            strOp(ref my_str);
            Console.WriteLine("result:" + my_str);
            Console.WriteLine();

            MyEvent evt = new MyEvent();
            evt.SomeEventHandler += new myEventHandler(handler);
            evt.OnSomeEvent();
        }
示例#3
0
    public static void Main()
    {
        // Создаем экземпляры делегатов.
        strMod strOp;
        strMod replaceSp  = new strMod(replaceSpaces);
        strMod removeSp   = new strMod(removeSpaces);
        strMod reverseStr = new strMod(reverse);

        string str = "Это простой тест.";

        // Организация многоадресатной передачи,
        strOp  = replaceSp;
        strOp += reverseStr;

        // Вызов делегата с многоадресатной передачей.
        strOp(ref str);
        Console.WriteLine("Результирующая строка: " + str);
        Console.WriteLine();

        // Удаляем метод замены пробелов и
        // добавляем метод их удаления.
        strOp -= replaceSp;
        strOp += removeSp;
        str    = "Это простой тест."; // Восстановление
                                      // исходной строки.
                                      // Вызов делегата с многоадресатной передачей.
        strOp(ref str);
        Console.WriteLine("Результирующая строка: " + str);
        Console.WriteLine();
    }
示例#4
0
        public static strMod ModifyAnonim()
        {
            strMod myFunc = delegate(string a)
            {
                return(a.Replace(' ', '-'));
            };

            return(myFunc);
        }
示例#5
0
        public static void Demo()
        {
            strMod strOp;
            strMod strOp1 = new strMod(replaceSpaces);
            strMod strOp2 = new strMod(reverse);

            string str = "Это простой текст.";

            strOp  = strOp1;
            strOp += strOp2;

            strOp(ref str);
            Console.WriteLine(str);
        }
示例#6
0
        delegate string strMod(string str); // делегат ()

        public static void Demo()
        {
            strMod strOp = replaceSpaces;
            // или так:
            // strMod strOp = new strMod(replaceSpaces);
            string str = strOp("Ёто простой текст.");

            Console.WriteLine(str);

            // логичнее, однако, использовать делегат так.  од становитс¤
            // смотрибельнее.
            str = editString("Hello delegat!", removeSpaces);
            Console.WriteLine(str);
        }
示例#7
0
        static void Main(string[] args)
        {
            string custom = "my some text for tests";

            strMod strOp = new strMod(DelegateTest.replaceSpaces);//просто метод

            Console.WriteLine(strOp(custom));

            strMod mod1 = DelegateTest.ModifyAnonim(); //через анонимный метод

            Console.WriteLine(mod1(custom));

            strMod mod2 = a => a.Replace(' ', '-'); //через лямбду

            Console.WriteLine(mod2(custom));

            Console.ReadKey();
        }
示例#8
0
        static void Demo()
        {
            strMod strOp = delegate(string a)
            {
                string temp = "";
                int    i, j;

                Console.WriteLine("-> –еверсирование строки.");
                for (j = 0, i = a.Length - 1; i >= 0; i--, j++)
                {
                    temp += a[i];
                }

                return(temp);
            };  // ќбращаем внимание на точку с зап¤той!

            string str = strOp("Ёто простой текст.");

            Console.WriteLine(str);
        }
示例#9
0
    public static void Main() // Основная функция программы
    {
        string str;

        // Создание делегата.
        strMod strOp = new strMod(replaceSpaces);

        // Вызываем методы посредством делегата.
        str = strOp("Это простой тест.");
        Console.WriteLine("Результирующая строка: " + str);
        Console.WriteLine();

        strOp = new strMod(removeSpaces);
        str   = strOp("Это простой тест.");
        Console.WriteLine("Результирующая строка: " + str);
        Console.WriteLine();

        strOp = new strMod(reverse);
        str   = strOp("Это простой тест.");
        Console.WriteLine("Результирующая строка: " + str);
    }
示例#10
0
        static void Main(string[] args)
        {
            string temp = str;

            strMod strOp = ReplaceSpaces;

            strOp += Reverse;

            strOp(ref temp);

            Console.WriteLine(temp);

            temp = str;

            strOp -= ReplaceSpaces;
            strOp += RemoveSpaces;

            strOp(ref temp);

            Console.WriteLine(temp);
        }
    public static void Main()
    {
        string    str;
        StringOps so = new StringOps(); // Создаем экземпляр
                                        // класса StringOps.
        // Создаем делегат.
        strMod strOp = new strMod(so.replaceSpaces);

        // Вызываем методы с использованием делегатов.
        str = strOp("Это простой тест.");
        Console.WriteLine("Результирующая строка: " + str);
        Console.WriteLine();

        strOp = new strMod(so.removeSpaces);
        str   = strOp("Это простой тест.");
        Console.WriteLine("Результирующая строка: " + str);
        Console.WriteLine();

        strOp = new strMod(so.reverse);
        str   = strOp("Это простой тест.");
        Console.WriteLine("Результирующая строка: " + str);
        Console.WriteLine();
    }
示例#12
0
        static string editString(string str, strMod strDeledat)
        {
            string res = strDeledat(str);

            return(res);
        }