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(); }
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(); }
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(); }
public static strMod ModifyAnonim() { strMod myFunc = delegate(string a) { return(a.Replace(' ', '-')); }; return(myFunc); }
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); }
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); }
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(); }
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); }
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); }
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(); }
static string editString(string str, strMod strDeledat) { string res = strDeledat(str); return(res); }