自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

快捷簡單的VB.NET編程事件方法介紹

開發(fā) 后端
文章介紹了VB.NET編程,列舉了對事件的例子,在實(shí)現(xiàn)中使用事件的回調(diào)設(shè)計(jì)需要的所有步驟,看完本為你會發(fā)現(xiàn)你對事件編程有更深成的理解。

看一個關(guān)于VB.NET編程的例子,在這里呢我使用另一種方法來說明當(dāng)你建立和注冊一個事件處理程序時到底發(fā)生了什么事情。一旦你明白事情是怎么回事,你也許會感激使用了更簡潔的語法實(shí)現(xiàn)了相同的目標(biāo),一起來看看吧:

  1. '建立銀行帳號對象  
  2. Dim account1 As New BankAccount()  
  3. '注冊事件處理程序  
  4. AddHandler account1.LargeWithdraw, AddressOf AccountHandlers.LogWithdraw  
  5. AddHandler account1.LargeWithdraw, AddressOf AccountHandlers.GetApproval  

因?yàn)锳ddHandler語句期待一個委托對象作為第二個參數(shù),你能使用速記語法--AddressOf操作符后緊跟目標(biāo)處理方法的名字。當(dāng)Visual Basic .NET編譯器看到該語法時,它接著產(chǎn)生額外的代碼來建立作為事件處理程序服務(wù)的委托對象。VB.NET編程語言中的AddHandler語句的補(bǔ)充是RemoveHandler語句。RemoveHandler需要的參數(shù)與AddHandler的相同,它的效果相反。它通過事件源調(diào)用remove_LargeWithdraw方法從已注冊的處理方法列表中刪除目標(biāo)處理方法。

  1. Dim account1 As New BankAccount()  
  2. '注冊事件處理程序  
  3. AddHandler account1.LargeWithdraw, AddressOf AccountHandlers.LogWithdraw  
  4. '刪除事件處理程序注冊  
  5. RemoveHandler account1.LargeWithdraw, AddressOf AccountHandlers.LogWithdraw   

你已經(jīng)看到了實(shí)現(xiàn)使用事件的回調(diào)設(shè)計(jì)需要的所有步驟了。代碼顯示了一個完整的應(yīng)用程序,在該程序中已經(jīng)注冊了兩個事件處理程序從BankAccount對象的LargeWithdraw事件接收回調(diào)通知。

  1. Delegate Sub LargeWithdrawHandler(ByVal Amount As Decimal)  
  2. Class BankAccount  
  3. Public Event LargeWithdraw As LargeWithdrawHandler  
  4. Sub Withdraw(ByVal Amount As Decimal)  
  5. '如果需要的話就發(fā)送通知  
  6. If (Amount > 5000) Then  
  7. RaiseEvent LargeWithdraw(Amount)  
  8. End If  
  9. '執(zhí)行撤消  
  10. End Sub  
  11. End Class  
  12. Class AccountHandlers  
  13. Shared Sub LogWithdraw(ByVal Amount As Decimal)  
  14. '把撤消信息寫入日志文件  
  15. End Sub  
  16. Shared Sub GetApproval(ByVal Amount As Decimal)  
  17. '阻塞直到管理者批準(zhǔn)  
  18. End Sub  
  19. End Class  
  20. Module MyApp  
  21. Sub Main()  
  22. '建立銀行帳號對象  
  23. Dim account1 As New BankAccount()  
  24. '注冊事件處理程序  
  25. AddHandler account1.LargeWithdraw, _  
  26. AddressOf AccountHandlers.LogWithdraw  
  27. AddHandler account1.LargeWithdraw, _  
  28. AddressOf AccountHandlers.GetApproval  
  29. '做一些觸發(fā)回調(diào)的事情  
  30. account1.Withdraw(5001)  
  31. End Sub  
  32. End Module   


結(jié)論

盡管使用事件的動機(jī)和一些語法與早期版本的VB.NET編程相比仍然沒有改變,但是你不得不承認(rèn)情況有很大不同了。你能看到,你對如何響應(yīng)事件的控制力比以前大多了。如果你將使用委托編程,這就很實(shí)際了。

【編輯推薦】

  1. 講述VB.NET實(shí)現(xiàn)拖動圖片
  2. 簡單講解VB.NET ListBox控件
  3. 淺析VB.NET語言與VB語言對比
  4. 你是否了解VB.NET集成開發(fā)環(huán)境
  5. 深入分析VB.NET條件語句中的兩類
責(zé)任編輯:田樹 來源: 樂博網(wǎng)
相關(guān)推薦

2009-10-23 17:03:18

VB.NET事件編程

2009-11-04 09:32:12

VB.NET Auto

2009-11-10 10:28:20

VB.NET誕生

2009-10-12 13:19:14

VB.NET線程同步

2010-01-22 17:22:49

VB.NET事件訪問器

2010-01-07 15:25:11

VB.NET數(shù)組

2010-01-22 10:41:33

VB.NET聲明結(jié)構(gòu)

2009-11-10 12:42:47

VB.NET Prin

2009-08-18 16:57:24

VB.NET和C#

2010-01-07 16:40:13

VB.NET一維數(shù)組

2009-11-02 10:36:16

VB.NET Sub

2010-01-07 10:46:27

VB.NET Sock

2010-01-21 17:58:40

VB.NET List

2010-01-15 18:12:28

VB.NET超鏈接

2010-01-15 19:17:23

2010-01-08 13:35:35

VB.NET寫Log方

2010-01-12 18:12:58

VB.NET事件

2010-01-12 16:30:21

VB.NET數(shù)據(jù)轉(zhuǎn)換

2010-01-07 16:51:56

VB.NET窗體鉤子

2010-01-20 17:47:54

VB.NET注釋
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號