從上面的例子看,委托OperationDelegate代表了一組方法,他們的方法簽名是:
--返回值:int; 參數:int ,int ;
只要符合該簽名的方法,都可以賦給此委托:從上面不難看出,我要要創建一委托,則如下定義:
1OperationDelegate del += new OperationDelegate(方法名);
從上面可以看到(+=)這個運算符,那是不是也有(-=)這個運算符呢?這就涉及到另外一個概念了--委 托鏈。
--委托鏈:實際上委托實例就是一個委托鏈,+=代表增加委托實例到委托鏈中,相反-=則代表去掉該 委托實例。
1OperationDelegate del = null;
2del += new OperationDelegate(Add); //增加委托實例到委托鏈
3del -= new OperationDelegate(Add); //去掉委托實例到
委托的意義之一
--委托可以使得程序的復用程度提高;
--委托在一定程度上想當於接口;
例如:前面例子中的方法Operate(),由於接受的是一個委托類型;那麼,我們可以對委托類型賦予不 同的方法,來改變Operate()的性質。
我們在來看看另外一個示例:
--我們想輸出一串數字,從0-100;
--對於輸出的要求有三種;
-1、輸出到控制台
-2、輸出到窗體中的ListBox中;
-3、輸出到文本文件中;