不忘本~委托和事件(续)
生活随笔
收集整理的這篇文章主要介紹了
不忘本~委托和事件(续)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
返回目錄 今天再說說委托在.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
?
好了,對委托有了了解后,再來詳細的看看MSDN是如何定義事件的吧:
事件(C# 編程指南)
類或對象可以通過事件向其他類或對象通知發生的相關事情。 發送(或引發)事件的類稱為“發行者”,接收(或處理)事件的類稱為“訂戶”。
在典型的 C# Windows 窗體或 Web 應用程序中,可訂閱由控件(如按鈕和列表框)引發的事件。 可使用 Visual C# 集成開發環境 (IDE) 來瀏覽控件發布的事件,選擇要處理的事件。 IDE 會自動添加空事件處理程序方法和訂閱事件的代碼。
下圖是一個按鈕引發了一個事件:(訂閱事件代碼)
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 }而這一切都是VS,IDE自動為我們做好的,不用我們去干預.
返回目錄
轉載于:https://www.cnblogs.com/lori/archive/2011/06/09/2076425.html
總結
以上是生活随笔為你收集整理的不忘本~委托和事件(续)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网络操作系统与通常的操作系统的区别
- 下一篇: flex 3 使用手册