Делегат — это тип ссылки, который хранит данные о сигнатуре метода.
Делегат — это объект, который ссылается на метод.
Объект делегата может вызывать разные методы во время выполнения, а не во время компиляции.
Синтаксис:
[атрибут] модификатор_доступа delegate тип имя_делегата ([список_параметров]);
Делегат — это объект, который ссылается на метод.
Объект делегата может вызывать разные методы во время выполнения, а не во время компиляции.
Синтаксис:
[атрибут] модификатор_доступа delegate тип имя_делегата ([список_параметров]);
Main.cs
using
System;
public
delegate
int
dlgSum(
int
arg0,
int
arg1);
public
delegate
void
dlgTextShow();
class
One {
-
//метод, который будет вызывать объект делегата
-
public
int
Sum(
int
arg0,
int
arg1) {
-
return
(arg0 + arg1);
-
}
-
//метод, который будет вызывать объект делегата
-
public
void
TextShow() {
-
Console.WriteLine(
"Привет Мир!"
);
-
}
}
class
Program {
-
public
static
int
Main() {
-
/*должен быть создан объект класса, в котором объявлен метод,
-
на который будет ссылаться объект делегата*/
-
One O =
new
One();
-
//инициализация делегата, создание объекта и его привязка к методу
-
//ВНИМАНИЕ! указывается только имя метода, БЕЗ СКОБОК
-
dlgSum dS =
new
dlgSum(O.Sum);
-
//реализация объекта делегата
-
//обратите ВНИМАНИЕ, к объекту делегата добавляются круглые скобки, как у метода
-
Console.WriteLine(dS(10, 20));
-
dlgTextShow dTS =
new
dlgTextShow(O.TextShow);
-
dTS();
-
Console.ReadKey();
-
return
0;
-
}
}
using
System;
public
delegate
int
dlgSum(
int
arg0,
int
arg1);
public
delegate
void
dlgTextShow();
class
One {
-
//метод, который будет вызывать объект делегата
-
public
int
Sum(
int
arg0,
int
arg1) {
-
return
(arg0 + arg1);
-
}
-
//метод, который будет вызывать объект делегата
-
public
void
TextShow() {
-
Console.WriteLine(
"Привет Мир!"
);
-
}
}
class
Program {
-
public
static
int
Main() {
-
/*должен быть создан объект класса, в котором объявлен метод,
-
на который будет ссылаться объект делегата*/
-
One O =
new
One();
-
//инициализация делегата, создание объекта и его привязка к методу
-
//ВНИМАНИЕ! указывается только имя метода, БЕЗ СКОБОК
-
dlgSum dS =
new
dlgSum(O.Sum);
-
//реализация объекта делегата
-
//обратите ВНИМАНИЕ, к объекту делегата добавляются круглые скобки, как у метода
-
Console.WriteLine(dS(10, 20));
-
dlgTextShow dTS =
new
dlgTextShow(O.TextShow);
-
dTS();
-
Console.ReadKey();
-
return
0;
-
}
}
30
Привет Мир!