Пример кода на 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();
}
}
}
}
Результат работы программы:

По сути, делегат это объект, который ссылается на метод.
