本文試圖在.Net Framework環境下,使用C#語言來描述委托、事件的概貌。希望本文能有助於大家理 解委托、事件的概念,理解委托、事件的用途,理解它的C#實現方法,理解委托與事件為我們帶來的好處 。C#是一種新的語言,希望大家能通過本文清楚地看到這些,從而可以對委托、事件等技術進行更深入的 理解和探索。
一. 委托
委托的本質
--在C#中,委托是一個特殊的類;
--在某種程度上,相當於C++的函數指針;
--在某種程度上,相當於接口(Interface);
委托的定義
--關鍵字:delegate
--public delegate void MyDelegate(string message);
注:在這裡我們先了解一個概念,什麼是函數簽名?(在這裡我不做過多解釋,大家知道這個概念就行) 。
使用委托
我們先來看看一個小的委托示例:
平時,如果說我們要設計一個做簡單加減運算的方法,通常是怎麼做的呢?看看下面代碼:
1class Program
2 {
3 /**//// <summary>
4 /// 加法運算
5 /// </summary>
6 /// <param name="x">x</param>
7 /// <param name="y">y</param>
8 /// <returns></returns>
9 private static int Add(int x, int y)
10 {
11 int result = x + y;
12 Console.WriteLine("x + y = {0}",result);
13 return result;
14 }
15
16 /**//// <summary>
17 /// 減法運算
18 /// </summary>
19 /// <param name="x">x</param>
20 /// <param name="y">y</param>
21 /// <returns></returns>
22 private static int Sub(int x, int y)
23 {
24 int result = x - y;
25 Console.WriteLine("x - y = {0}", result);
26 return result;
27 }
28
29 static void Main(string[] args)
30 {
31 Add(8, 8);
32 Sub(8, 1);
33 Console.Read();
34 }
35 }