InternalCancelHandler
- это delegate
, который является способом C # для удержания ссылки на определенный метод.Первая строка определяет делегата для ссылки на метод, который имеет возврат void
и не принимает параметров (так как нет списка параметров.) Это определение:
delegate int InternalCancelHandler(bool boolParam);
Определяет делегат, который будет ссылаться наметоду, который возвращает int
и принимает один параметр bool
.
Следующая строка - это объявление статического, доступного только для чтения поля этого типа делегата, которое инициализируется новым экземпляром со ссылкой наметод DoConsoleCancelEvent
.
С этим объявлением вы теперь можете вызывать DoConsoleCancelEvent
с помощью , вызывая делегата:
public static void CallDelegate()
{
// This line will actually call DoConsoleCancelEvent
MyType.cancel_handler();
}
Обратите внимание, что Handler
в конце тип делегата предполагает, что это обработчик события, что означает, что более вероятно, что вы захотите использовать его для подписки на событие:
public static void EventSub()
{
// This line makes it so that cancel_handler is called when
// SomeEvent is fired. Since cancel_handler actually refers
// to DoConsoleCancelEvent, it is *that* method that will
// actually be run
SomeType.SomeEvent += cancel_handler;
}
static
означает, чтополе связано с Type
, а не с конкретным экземпляром Type
readonly
означает, что поле может быть назначено только во время построения Type