Сообщество программистов Autodesk в СНГ
Разное => Разное => Тема начата: Алексей (IdeaSoft) от 31-03-2017, 01:35:31
Название:
Delegate в C#
Отправлено:
Алексей (IdeaSoft)
от
31-03-2017, 01:35:31
Подскажите.
Есть к примеру, класс и делегат.
Код - C#
[Выбрать]
delegate
void
MyDelegate
(
int
cnt
)
;
class
MyClass
{
public
event
MyDelegate ChangeCount
;
private
int
Count
;
public
void
move
(
)
{
Count
++;
if
(
ChangeCount
!=
null
)
ChangeCount
(
Count
)
;
}
}
Код - C#
[Выбрать]
class
TestApp
{
// обработчик события
public
static
void
onChangeCount
(
int
cnt
)
{
if
(
cnt
>
4
)
Console
.
WriteLine
(
cnt
+
" - это более допустимого знечения."
)
;
}
public
static
void
Main
(
)
{
}
}
Какая разница между двумя примерами рализации кода функции Main?
Пример 1:
Код - C#
[Выбрать]
MyDelegate deleg
=
new
MyDelegate
(
onChangeCount
)
;
MyClass Obj
=
new
MyClass
(
)
;
Obj
.
ChangeCount
+=
deleg
;
Obj
.
move
(
)
;
Пример 2:
Код - C#
[Выбрать]
MyClass Obj
=
new
MyClass
(
)
;
Obj
.
ChangeCount
+=
onChangeCount
;
Obj
.
move
(
)
;
Ведь оба примера работают.