日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
VB.NET重載事件處理應(yīng)用經(jīng)驗(yàn)分享

VB.NET是由微軟開發(fā)的一款面向?qū)ο笳Z言。其應(yīng)用范圍也是比較廣泛。其中一個(gè)比較重要的操作就是重載。我們可以利用VB.NET重載事件處理實(shí)現(xiàn)許多特定功能,幫助我們提高實(shí)際開發(fā)效率。

創(chuàng)新互聯(lián)專注于涉縣企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站設(shè)計(jì),商城系統(tǒng)網(wǎng)站開發(fā)。涉縣網(wǎng)站建設(shè)公司,為涉縣等地區(qū)提供建站服務(wù)。全流程按需網(wǎng)站設(shè)計(jì),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

前提

您應(yīng)該非常了解繼承和面向?qū)ο蟮木幊?。有關(guān)詳細(xì)信息,請(qǐng)參閱 Polymorphism in Components(英文)。

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

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

 
 
 
  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

只要發(fā)生 Button1.Click 事件,就會(huì)執(zhí)行以上方法。方法聲明末尾的 Handles 子句將方法與事件進(jìn)行關(guān)聯(lián)。這是組件中事件處理程序的典型結(jié)構(gòu)。

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

 
 
 
  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#

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

重載繼承組件中的方法

將 Overrides 關(guān)鍵字添加到方法聲明中。

注意:不要在方法中添加 Handles 子句。VB.NET重載事件處理程序已經(jīng)與基類中的事件相關(guān)聯(lián),并且此關(guān)聯(lián)將傳遞到繼承類中。也就是說,當(dāng)引發(fā)事件時(shí)將執(zhí)行此方法,而不再需要額外的 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 子句不再與此方法相關(guān)聯(lián)。這并不是疏忽,而是 .NET 框架處理事件的一項(xiàng)重要內(nèi)容。VB.NET重載事件處理程序已經(jīng)與基類中的事件相關(guān)聯(lián),并且此關(guān)聯(lián)將傳遞到繼承類中。也就是說,當(dāng)引發(fā)事件時(shí)將執(zhí)行此方法,而不再需要額外的 Handles 子句。如下所示,如果添加 Handles 子句,將創(chuàng)建與事件的附加關(guān)聯(lián),這會(huì)使方法在每個(gè)事件中被執(zhí)行兩次。

 
 
 
  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. ' 每次單擊按鈕時(shí),此變量將遞增
  6. ' 兩次。
  7. Counter += 1
  8. ' 每次單擊按鈕時(shí),消息框?qū)@示
  9. ' 兩次,并顯示不準(zhǔn)確的信息。
  10. MessageBox.Show (" 
    此繼承的按鈕已被單擊 " & _
  11. Counter.ToString() & " 次。")
  12. End Sub

總結(jié)

VB.NET重載事件處理程序可能造成一些不易察覺的問題,并導(dǎo)致難以查出的錯(cuò)誤。因此,設(shè)置與事件處理程序的正確關(guān)聯(lián)是非常重要的。請(qǐng)小心使用,并注意已經(jīng)存在的事件關(guān)聯(lián)。


網(wǎng)頁題目:VB.NET重載事件處理應(yīng)用經(jīng)驗(yàn)分享
文章URL:http://m.5511xx.com/article/ccddgoc.html