1. 程式人生 > 實用技巧 >C#委託和事件的使用示例

C#委託和事件的使用示例

一、委託

使用委託時要先例項化,和類一樣,使用new關鍵字產生委託的新例項,然後將一個或者多個與委託簽名匹配的方法與委託例項關聯。隨後呼叫委託時,就會呼叫所有與委託例項關聯的方法。

與委託關聯可以是任何類或者結構中的方法,可以是靜態方法,只要是可以訪問的方法都可以。

1.建立一個委託型別使用關鍵字delegate(委託)

輸出如下:

2.一個委託例項,可關聯多個方法:

其中D4 = TestMethod1;用“=”而不能“+=”,是因為之前D4未例項化,可以使用下面的程式碼:

MyDelegate D4 = new MyDelegate(TestMethod1);
D4 += TestMethod2;
D4 += TestMethod3;

但是如果使用以下方式,會出現編譯錯誤: “MyDelegate”方法沒有采用“0”個引數的過載:

MyDelegate D4 = new MyDelegate();
D4 += TestMethod1;

詳情見:http://www.tracefact.net/tech/009.html

3.移除一個委託例項中的方法 使用“-=”: