Синтаксис:
[атрибут] модификатор_доступа delegate тип имя_делегата (список_параметров);
[атрибут] модификатор_доступа delegate тип имя_делегата (список_параметров);
Main.cs
using
System;
public
delegate
decimal
delSum();
public
class
Counter {
-
ushort
showStart;
-
ushort
showEnd;
-
decimal
price;
-
public
Counter(
ushort
arg0,
ushort
arg1,
decimal
arg2) {
-
showStart = arg0;
-
showEnd = arg1;
-
price = arg2;
-
}
-
public
ushort
ResultShow() {
-
return
(
ushort
)(showEnd-showStart);
-
}
-
public
decimal
Sum() {
-
return
Math.Round((
decimal
)(ResultShow()*price), 2);
-
}
}
class
Program {
-
public
static
int
Main() {
-
Console.WriteLine(
"оплата за электроэнергию\n"
);
-
Console.Write(
"Введите начальные показания счетчика : "
);
-
ushort
show_start =
ushort
.Parse(Console.ReadLine());
-
Console.Write(
"Введите конечные показания счетчика : "
);
-
ushort
show_end =
ushort
.Parse(Console.ReadLine());
-
Console.Write(
"Введите цену за 1 кВт/ч : "
);
-
decimal
price =
decimal
.Parse(Console.ReadLine());
-
Counter C =
new
Counter(show_start, show_end, price);
-
/*инициализация делегата, создание объекта и его привязка к методу
-
ВНИМАНИЕ!!! указывается только имя метода, без скобок*/
-
delSum dS =
new
delSum(C.Sum);
-
/*обратите ВНИМАНИЕ, как реализуется объект делегата,
-
к нему добавляются круглые скобки*/
-
Console.WriteLine(
"Сумма за электроэнергию : {0}"
, dS());
-
Console.ReadKey();
-
return
0;
-
}
}
using
System;
public
delegate
decimal
delSum();
public
class
Counter {
-
ushort
showStart;
-
ushort
showEnd;
-
decimal
price;
-
public
Counter(
ushort
arg0,
ushort
arg1,
decimal
arg2) {
-
showStart = arg0;
-
showEnd = arg1;
-
price = arg2;
-
}
-
public
ushort
ResultShow() {
-
return
(
ushort
)(showEnd-showStart);
-
}
-
public
decimal
Sum() {
-
return
Math.Round((
decimal
)(ResultShow()*price), 2);
-
}
}
class
Program {
-
public
static
int
Main() {
-
Console.WriteLine(
"оплата за электроэнергию\n"
);
-
Console.Write(
"Введите начальные показания счетчика : "
);
-
ushort
show_start =
ushort
.Parse(Console.ReadLine());
-
Console.Write(
"Введите конечные показания счетчика : "
);
-
ushort
show_end =
ushort
.Parse(Console.ReadLine());
-
Console.Write(
"Введите цену за 1 кВт/ч : "
);
-
decimal
price =
decimal
.Parse(Console.ReadLine());
-
Counter C =
new
Counter(show_start, show_end, price);
-
/*инициализация делегата, создание объекта и его привязка к методу
-
ВНИМАНИЕ!!! указывается только имя метода, без скобок*/
-
delSum dS =
new
delSum(C.Sum);
-
/*обратите ВНИМАНИЕ, как реализуется объект делегата,
-
к нему добавляются круглые скобки*/
-
Console.WriteLine(
"Сумма за электроэнергию : {0}"
, dS());
-
Console.ReadKey();
-
return
0;
-
}
}
оплата за электроэнергию
Введите начальные показания счетчика : 0
Введите конечные показания счетчика : 100
Введите цену за 1 кВт/ч : 0,3084
Сумма за электроэнергию : 30,84
Введите начальные показания счетчика : 0
Введите конечные показания счетчика : 100
Введите цену за 1 кВт/ч : 0,3084
Сумма за электроэнергию : 30,84