成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

VB.NET重載事件處理應用經驗分享

開發 后端
VB.NET重載事件處理的繼承方法,與其他類型的繼承方式大致相同,不過其中一個很不同的地方就是需要在操作過程中刪除Handles 子句。

VB.NET是由微軟開發的一款面向對象語言。其應用范圍也是比較廣泛。其中一個比較重要的操作就是重載。我們可以利用VB.NET重載事件處理實現許多特定功能,幫助我們提高實際開發效率。

前提

您應該非常了解繼承和面向對象的編程。有關詳細信息,請參閱 Polymorphism in Components(英文)。

繼承的VB.NET重載事件處理程序

在繼承某個組件時,該組件的所有成員都被并入新類中。事件處理程序是在響應組件接收的特定事件時執行的方法,并且它是和其他組件成員一同被繼承的。以下示例顯示了一個典型的事件處理程序:

 

  1. Private Sub Button1_Click
    (ByVal sender As System.
    Object, ByVal e as _  
  2. System.EventArgs) Handles 
    Button1.Click  
  3. Static Counter as Integer = 0 
  4. Counter += 1  
  5. MessageBox.Show (" 此按鈕已被單擊 " & _  
  6. Counter.ToString() & " 次。")  
  7. End Sub 

 

只要發生 Button1.Click 事件,就會執行以上方法。方法聲明末尾的 Handles 子句將方法與事件進行關聯。這是組件中事件處理程序的典型結構。

為了在繼承類中重載此方法,必須添加 Overridable 關鍵字,并將訪問級別更改為 Protected、Protected Friend 或 Public。以下示例顯示了一個可以被重載的事件處理程序:

 

  1. Protected Overridable Sub 
    Button1_Click(ByVal sender 
    As System.Object, _  
  2. ByVal e as System.EventArgs)
     Handles Button1.Click  
  3. Static Counter as Integer = 0 
  4. Counter += 1  
  5. MessageBox.Show (" 此按鈕已被單擊 " & _  
  6. Counter.ToString() & " 次。")  
  7. End Sub 

 

組件中繼承的VB.NET重載事件處理程序#t#

重載繼承的事件處理程序與重載任何其他類型的繼承方法基本相同,***不同之處在于:在重載繼承的事件處理程序時,必須刪除 Handles 子句。

重載繼承組件中的方法

將 Overrides 關鍵字添加到方法聲明中。

注意:不要在方法中添加 Handles 子句。VB.NET重載事件處理程序已經與基類中的事件相關聯,并且此關聯將傳遞到繼承類中。也就是說,當引發事件時將執行此方法,而不再需要額外的 Handles 子句。

以下示例顯示了如何重載前面示例中的事件處理程序:

 

  1. Protected Overrides Sub
     Button1_Click(ByVal 
    sender As System.Object, _  
  2. ByVal e as System.EventArgs)  
  3. Static Counter as Integer = 0 
  4. Counter += 1  
  5. MessageBox.Show ("
     此繼承的按鈕已被單擊 " & _  
  6. Counter.ToString() & " 次。")  
  7. End Sub 

 

為什么不需要 Handles 子句

Handles 子句不再與此方法相關聯。這并不是疏忽,而是 .NET 框架處理事件的一項重要內容。VB.NET重載事件處理程序已經與基類中的事件相關聯,并且此關聯將傳遞到繼承類中。也就是說,當引發事件時將執行此方法,而不再需要額外的 Handles 子句。如下所示,如果添加 Handles 子句,將創建與事件的附加關聯,這會使方法在每個事件中被執行兩次。

 

  1. ' 不正確的代碼  
  2. Protected Overrides Sub 
    Button1_Click(ByVal sender 
    As System.Object, _  
  3. ByVal e as System.EventArgs) 
    Handles Button1.Click  
  4. Static Counter as Integer = 0 
  5. ' 每次單擊按鈕時,此變量將遞增  
  6. ' 兩次。  
  7. Counter += 1  
  8. ' 每次單擊按鈕時,消息框將顯示  
  9. ' 兩次,并顯示不準確的信息。  
  10. MessageBox.Show (" 
    此繼承的按鈕已被單擊 " & _  
  11. Counter.ToString() & " 次。")  
  12. End Sub 

 

總結

VB.NET重載事件處理程序可能造成一些不易察覺的問題,并導致難以查出的錯誤。因此,設置與事件處理程序的正確關聯是非常重要的。請小心使用,并注意已經存在的事件關聯。

責任編輯:曹凱 來源: 中國IT實驗室
相關推薦

2010-01-12 17:02:54

VB.NET文件上傳

2010-01-14 18:14:22

VB.NET開發特點

2010-01-07 13:29:00

VB.NET正則表達式

2010-01-13 18:09:09

VB.NET動態生成代

2009-10-27 11:39:03

VB.NET事件處理程

2009-10-13 17:08:10

CLR VB.NET

2010-01-12 18:12:58

VB.NET事件

2009-10-23 17:03:18

VB.NET事件編程

2010-01-11 15:31:04

VB.NET拖動窗體

2010-01-13 16:45:44

VB.NET刪除控件

2010-01-19 18:52:08

VB.NET處理數據行

2009-10-10 15:43:51

2010-01-15 18:50:25

VB.NET資源文件

2009-10-30 16:31:55

VB.NET重載方法

2010-01-07 15:29:59

VB.NET表達式

2009-11-02 15:16:07

VB.NET編程

2009-10-16 14:31:48

VB.NET Noti

2009-10-14 11:27:20

VB.NET Grou

2009-10-26 13:13:17

VB.NET編碼規范

2010-01-14 11:09:35

VB.NET文本框
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩国产欧美一区 | 综合国产 | 亚洲精品成人在线 | 久久不射网 | 欧美伊人久久久久久久久影院 | 色就是色欧美 | 欧美成人黄色小说 | 亚洲欧美视频一区 | 久久久精品一区 | 在线观看亚洲 | 日韩精品不卡 | 日韩欧美在线观看 | 日韩精品一区二区三区免费观看 | 中文字幕福利 | 久久久久综合 | 天天弄| 久久精品网 | 久久999| 综合色久 | 欧美黑人激情 | 国产a区| 91色综合 | 亚洲国产精品久久久久久 | 久久久一区二区三区 | 涩涩视频在线观看免费 | 一区二区三区电影网 | 精品一区免费 | 久热中文字幕 | 久久久久久国产精品免费 | 亚洲国产91| 天天弄| 日本黄色大片免费看 | 国产综合在线视频 | 久久精品这里精品 | 久久精品91久久久久久再现 | 视频二区国产 | 精品蜜桃一区二区三区 | 97国产爽爽爽久久久 | av网站免费 | 国产91精品久久久久久久网曝门 | 色av一区二区三区 |