委託與事件一般情況下都是一起使用,事件是特殊化的委託。
委託:是乙個可以對方法進行引用的型別。
委託型別一旦為委託定義了方法,委託將與該方法具有完全相同的行為,委託方法的呼叫和其他方法呼叫一樣
具有引數和返回值,但分配給委託的方法必須與委託的返回型別和引數組成匹配。
特點:委託類似於c++中的函式指標,但它是型別安全的。
委託允許將方法作為引數進行傳遞。
委託可用於定義**方法。
委託可以鏈結在一起。
方法不必與委託簽名完全匹配。
例子:8.1 使用委託
view code
public
delegate
void myfirstdelegate(string message);
class program
}class myclass
}執行結果:
例子8.2:委託呼叫靜態方法
view code
public
delegate
void myfirstdelegate(string message);
class program
}class myclass
public
void writesecondmessage(string message)
}執行結果:
例子8.3委託作為引數呼叫
view code
public
delegate
void mydelegate(int i,int j);
class program
}class mynewclass
+=",i,j,sum);
}public
static
void product(int i, int j)
*=", i, j, product);
}public
static
void methoddelegate(int i, int j, mydelegate mydelegate)
}執行結果:
例子8.4 多重委託
view code
delegate
void mydelegate(int i,int j);
class program
void method(int i, int j)
+=",i,j,i+j);
}void method1(int i, int j)
*=", i, j, i * j);}}
執行結果:
例子8.5 例項化委託的兩種方法
view code
class program
;mydel("
使用匿名方法例項化委託
");mydel = new mydelegate(program.dowork);
mydel("
不使用匿名方法例項化委託
");console.readkey();
}static
void dowork(string k)
}執行結果:
例子8.6 使用lambda表示式
JavaScript 第八章 事件
編寫乙個通用的事件監聽函式 描述事件冒泡過程 對於乙個無限下拉載入的頁面,如何給每個繫結事件 關於低版本ie相容性問題 var btn document.getelementbyid btn1 btn.addeventlistener click function event 封裝 function...
第八章 指標 第八章 指標
1 什麼是位址 include using namespace std int main 11 在堆中建立對像 我們既然可以在堆中儲存變數,那麼也就可以儲存對像,我們可以將對像儲存堆中,然後通過指標來訪問它 include using namespace std class human 14 在建構...
第八章讀書筆記
本章主要講了蜂鳴器的實驗原理,通過完整的蜂鳴器驅動控制蜂鳴器的開啟與關閉。蜂鳴器是s3c410開發板上帶的乙個硬體裝置。可以通過向暫存器寫入特定的值來控制蜂鳴器發出尖叫聲。蜂鳴器也稱為pwm脈衝寬度調製,基本原理就是通過脈衝來控制蜂鳴器的開啟和停止。pwm驅動的實現方式不同於led驅動,pwm驅動由...