Разработать проект использования делегата - C#
Формулировка задачи:
Всем привет
Очень нужна помощь с реализацией программы:
Задание:
Разработать проект использования делегата для: - вызова разных методов одним экземпляром делегата; - - многоадресной передачи. В методах предусмотреть вывод результата.Решение задачи: «Разработать проект использования делегата»
textual
Листинг программы
using System;
using System.Text;
class Class1
{
public static string DoubleStringRemoveChar( string str, int k )
{
StringBuilder sb = new StringBuilder();
sb.Append( str ).Append( str ).Remove( k, 1 );
return sb.ToString();
}
public string ReplaceWithPlus( string str, int s )
{
StringBuilder sb = new StringBuilder( str );
sb[ s ] = '+';
return sb.ToString();
}
}
class Class2
{
public string SubstringStartFrom( string str, int h )
{
StringBuilder sb = new StringBuilder( str );
return sb.ToString( h, sb.Length - h );
}
}
class Program
{
delegate string MyDelegate( string str, int i );
public static void Main()
{
MyDelegate d = Class1.DoubleStringRemoveChar;
string str = "Cogito ergo sum";
int k = 3;
Console.WriteLine( "Исходная строка: {0}", str );
Console.WriteLine( "Строка, обработанная методом_1 класса1, вызванным через делегат: {0}",
d( str, k ) );
Class1 c1 = new Class1();
d = c1.ReplaceWithPlus;
int s = 2;
Console.WriteLine( "Строка, обработанная методом_2 класса1, вызванным через делегат: {0}",
d( str, s ) );
Class2 c2 = new Class2();
d = c2.SubstringStartFrom;
int h = 4;
Console.WriteLine( "Строка, обработанная методом класса2, вызванным через делегат: {0}",
d( str, h ) );
Console.ReadLine();
}
}