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
意味着該領域與相關10,而不是的Type
readonly
特定實例意味着字段只能建設Type
嗯,它可能是一個代表...它也可以是一個類,其構造函數接受一個委託 –
感謝您的答案,我剛剛編輯了更多的細節問題,以避免誤解。 –
這麼棒的答案。很詳細。 –