Сохранение ссылки на метод в C#
Переменная типа delegate хранит ссылку
на метод. Имя метода без скобок передают в присваивание -
это называют группой методов.
Запишем делегат Notify, метод Print
и сохраним ссылку в переменной:
void Print(string text) {
Console.WriteLine(text);
}
Notify note = Print;
delegate void Notify(string text);
Ту же переменную можно переназначить другому методу с той же сигнатурой. Запишем второй метод и сменим ссылку:
void Print(string text) {
Console.WriteLine(text);
}
void ShowLength(string text) {
Console.WriteLine(text.Length);
}
Notify note = Print;
note = ShowLength;
note("abcde");
delegate void Notify(string text);
Придумайте тип Ping без параметров и два метода
без параметров, которые выводят разные короткие строки.
Сохраните в переменной этого типа сначала один метод,
затем второй, и выполните вызов через переменную
после каждого присваивания.