訂閱:event += handler;取消:event -= handler。
class LoginDialog : Form {
Button OkBtn, CancelBtn;
public LoginDialog() {
OkBtn = new Button(...);
OkBtn.Click += new EventHandler(OkClick);
CancelBtn = new Button(...);
CancelBtn.Click += new EventHandler(CancelClick);
}
void OkClick(object sender, EventArgs e) { /*處理*/ }
void CancelClick(object sender, EventArgs e) { /*處理*/ }
}
觸發相當於呼叫委派原型,必須先檢查非 null:
protected void OnClick(EventArgs e) {
if (Click != null) Click(this, e);
}
滿足兩條件可當欄位用:非 abstract、無顯式存取器。可指派 null、可比較、可直接呼叫。