Пример кода на C# с применением делегата
(в том числе преобразование строки в верхний и нижний регистр C# , замена символов, удаление символов)
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication5 { class Program { // делегата delegate string LinkStr(string str); class DelegateStr { // Преобразования строки в верхний регистр static string Upper(string line) { Console.WriteLine("Преобразование строки в верхний регистр"); return line.ToUpper(); } // Преобразования строки в нижний регистр static string Lower(string line) { Console.WriteLine("Преобразование строки в нижний регистр"); return line.ToLower(); } // Замена символа точки "." на запятую "," static string ReplacePointComma(string line) { Console.WriteLine("Замена символа точки на запятую"); return line.Replace('.', ','); } // Удаление символа запятая "," static string RemoveComma(string line) { string str = ""; Console.WriteLine("Удаление символа - запятая"); for (int i = 0; i < line.Length; i++) if (line[i] != ',') { str += line[i]; } return str; } static void Main(string[] args) { LinkStr DelegateStr = new LinkStr(Upper); string str_test; str_test = DelegateStr("Делегаты в C#....."); Console.WriteLine(str_test); Console.WriteLine(); DelegateStr = new LinkStr(Lower); str_test = DelegateStr(str_test); Console.WriteLine(str_test); Console.WriteLine(); DelegateStr = new LinkStr(ReplacePointComma); str_test = DelegateStr(str_test); Console.WriteLine(str_test); Console.WriteLine(); DelegateStr = new LinkStr(RemoveComma); str_test = DelegateStr(str_test); Console.WriteLine(str_test); Console.WriteLine(); Console.ReadKey(); } } } }
Результат работы программы:
По сути, делегат это объект, который ссылается на метод.