Синтаксис:
[атрибут] модификатор_доступа delegate тип имя_делегата (список_параметров);
[атрибут] модификатор_доступа delegate тип имя_делегата (список_параметров);
Main.cs
usingSystem;publicdelegatedecimaldelSum();publicclassCounter {-
ushortshowStart; -
ushortshowEnd; -
decimalprice; -
publicCounter(ushortarg0,ushortarg1,decimalarg2) { -
showStart = arg0; -
showEnd = arg1; -
price = arg2; -
} -
publicushortResultShow() { -
return(ushort)(showEnd-showStart); -
} -
publicdecimalSum() { -
returnMath.Round((decimal)(ResultShow()*price), 2); -
} }classProgram {-
publicstaticintMain() { -
Console.WriteLine("оплата за электроэнергию\n"); -
Console.Write("Введите начальные показания счетчика : "); -
ushortshow_start =ushort.Parse(Console.ReadLine()); -
Console.Write("Введите конечные показания счетчика : "); -
ushortshow_end =ushort.Parse(Console.ReadLine()); -
Console.Write("Введите цену за 1 кВт/ч : "); -
decimalprice =decimal.Parse(Console.ReadLine()); -
Counter C =newCounter(show_start, show_end, price); -
/*инициализация делегата, создание объекта и его привязка к методу -
ВНИМАНИЕ!!! указывается только имя метода, без скобок*/ -
delSum dS =newdelSum(C.Sum); -
/*обратите ВНИМАНИЕ, как реализуется объект делегата, -
к нему добавляются круглые скобки*/ -
Console.WriteLine("Сумма за электроэнергию : {0}", dS()); -
Console.ReadKey(); -
return0; -
} }
usingSystem;publicdelegatedecimaldelSum();publicclassCounter {-
ushortshowStart; -
ushortshowEnd; -
decimalprice; -
publicCounter(ushortarg0,ushortarg1,decimalarg2) { -
showStart = arg0; -
showEnd = arg1; -
price = arg2; -
} -
publicushortResultShow() { -
return(ushort)(showEnd-showStart); -
} -
publicdecimalSum() { -
returnMath.Round((decimal)(ResultShow()*price), 2); -
} }classProgram {-
publicstaticintMain() { -
Console.WriteLine("оплата за электроэнергию\n"); -
Console.Write("Введите начальные показания счетчика : "); -
ushortshow_start =ushort.Parse(Console.ReadLine()); -
Console.Write("Введите конечные показания счетчика : "); -
ushortshow_end =ushort.Parse(Console.ReadLine()); -
Console.Write("Введите цену за 1 кВт/ч : "); -
decimalprice =decimal.Parse(Console.ReadLine()); -
Counter C =newCounter(show_start, show_end, price); -
/*инициализация делегата, создание объекта и его привязка к методу -
ВНИМАНИЕ!!! указывается только имя метода, без скобок*/ -
delSum dS =newdelSum(C.Sum); -
/*обратите ВНИМАНИЕ, как реализуется объект делегата, -
к нему добавляются круглые скобки*/ -
Console.WriteLine("Сумма за электроэнергию : {0}", dS()); -
Console.ReadKey(); -
return0; -
} }
оплата за электроэнергию
Введите начальные показания счетчика : 0
Введите конечные показания счетчика : 100
Введите цену за 1 кВт/ч : 0,3084
Сумма за электроэнергию : 30,84
Введите начальные показания счетчика : 0
Введите конечные показания счетчика : 100
Введите цену за 1 кВт/ч : 0,3084
Сумма за электроэнергию : 30,84