中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

不忘(wang)本(ben)~委托和事件(續)

今天再說說委托在.net中的發展吧,從1.1,2.0到3.0是有不同的,主要表現在定義,調用上,而使用上還是一樣的.
在 1.0 的C# 版本中,聲明的唯一方法是使用。 C# 2.0 引入了匿名方法,而在 C# 3.0 及更高版本中,Lambda 表達式取代了匿名方法,作為編寫內聯代碼的首選方式。 不過,本主題中有關匿名方法的信息同樣也適用于 Lambda 表達式。 有一種情況下,匿名方法提供了 Lambda 表達式中所沒有的功能。 您可使用匿名方法來忽略參數列表。 這意味著匿名方法可轉換為具有各種簽名的委托。 這對于 Lambda 表達式來說是不可能的。
 
下面實例中,我叫一個按鈕button1分布使用了最原始的方法和匿名的方法來回調方法,看代碼:
   
 1   private void InitializeComponent()
 2 
 3         {
 4 
 5             this.button1 = new System.Windows.Forms.Button();
 6 
 7             this.SuspendLayout();
 8 
 9             // 
10 
11             // button1
12 
13             // 
14 
15             this.button1.Location = new System.Drawing.Point(74, 40);
16 
17             this.button1.Name = "testbtn1";
18 
19             this.button1.Size = new System.Drawing.Size(75, 23);
20 
21             this.button1.TabIndex = 0;
22 
23             this.button1.Text = "點我";
24 
25             this.button1.UseVisualStyleBackColor = true;
26 
27             this.button1.Click += new System.EventHandler(this.button1_Click);
28 
29           
30 
31             #region 為按鈕的單擊事件添加一個匿名的方法
32 
33             this.button1.Click += delegate(System.Object o, System.EventArgs e)
34 
35             {
36 
37                 System.Windows.Forms.MessageBox.Show("Click 1");
38 
39             };
40 
41             this.button1.Click += delegate(System.Object o, System.EventArgs e)
42 
43             {
44 
45                 System.Windows.Forms.MessageBox.Show("Click 2");
46 
47             };
48 
49             #endregion

 

好了(le),對委托(tuo)有了(le)了(le)解后,再(zai)來詳細的看看MSDN是如(ru)何(he)定義事(shi)件(jian)的吧:

事件(C# 編程指南)

或對象可以通過事件其他類或對象通知(zhi)發(fa)生(sheng)的相關事情。 發(fa)送(或引發(fa))事件(jian)的類稱為(wei)“發(fa)行者”,接收(或處理)事件(jian)的類稱為(wei)“訂戶”。

在(zai)典型的 C# Windows 窗體或(huo) Web 應用程(cheng)序中,可訂(ding)閱由控(kong)件(jian)(jian)(如按鈕和列表框)引發(fa)的事(shi)件(jian)(jian)。 可使用 Visual C# 集成(cheng)開發(fa)環(huan)境 (IDE) 來瀏覽控(kong)件(jian)(jian)發(fa)布的事(shi)件(jian)(jian),選擇要處(chu)理(li)的事(shi)件(jian)(jian)。 IDE 會自動添(tian)加空事(shi)件(jian)(jian)處(chu)理(li)程(cheng)序方(fang)法(fa)和訂(ding)閱事(shi)件(jian)(jian)的代碼(ma)。

下(xia)圖是一個按鈕引發(fa)了(le)一個事(shi)件:(訂閱事(shi)件代碼)

1 this.button1.Click += new System.EventHandler(this.button1_Click);
如果希望取消訂閱可以這樣寫:
1 this.button1.Click -= new System.EventHandler(this.button1_Click);
而VS同時幫助我們添加了一個空的處理事件的方法,如下:
1   private void button1_Click(object sender, EventArgs e)
2 
3         {
4 
5         }

而這一(yi)切都(dou)是VS,IDE自動(dong)為我們(men)做好的,不用我們(men)去干(gan)預(yu).

返回目錄

posted @ 2011-06-09 15:01  張占嶺  閱讀(475)  評論(0)    收藏  舉報