溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

VB.NET事件在實際應用中有什么用

發(fā)布時間:2021-12-02 14:09:03 來源:億速云 閱讀:150 作者:小新 欄目:編程語言

這篇文章主要介紹了VB.NET事件在實際應用中有什么用,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

VB.NET中的類的構造函數是

  1. sub New()   

  2. end sub  

當然,你也可以加參數。比如Human類的構造函數:

  1. sub New(Byval Name as string, 
    byval Gender as String, byval 
    Stature as integer)   

  2. me.Name = Name 'me是VB.NET中的
    關鍵字,表示對象自己,如同java中   

  3. me.Gender = Gender '的this。
    java中的super在VB.NET中就是MyBase   

  4. me.Stature = Stature   

  5. end sub  

這樣,我們的老王就是

  1. dim LaoWang As new Human
    ("老王", "男", 177)   

這樣的話,構造Human對象的時候就必須帶參數了。我們可以另加一個不帶參數的New過程。這里就略過了。

對象不是死的,是活的。對象應該能夠主動向外界做出一些表示。這就是事件。比如一個人生了病。這個時候我們就要把他送到醫(yī)院去。我們先在Human類當中定義一個VB.NET事件:

public event FallIll

我們假設某人暴飲暴食,吃出病了。在Eat過程中寫上:

  1. public sub Eat()   

  2. raiseevent FallIll 
    'raiseevent用來引發(fā)一個事件   

  3. end sub  

外界怎樣來接收這個事件呢?用AddHandler。我們要在sub Main中先定義一個過程:

  1. sub GoToHospital   

  2. Console.WriteLine
    ("病人被送到醫(yī)院去了。")   

  3. end sub   

然后將這個過程綁定到一個具體的對象的事件上:

  1. AddHandler LaoWang.FallIll, 
    AddressOf GoToHospital  

這樣,一旦執(zhí)行LaoWang.Eat,就會引發(fā)FallIll事件,這時GoToHospital過程就會執(zhí)行。VB.NET事件完整的代碼如下:

imports System   public module MyModule

sub Main '在sub Main中并未直接調用GoToHospital。

  1. dim LaoWang as Human   

  2. LaoWang = new Human("老王", "男", 177)   

  3. AddHandler LaoWang.FallIll,
     AddressOf GoToHospital   

  4. Console.writeline("{0}, {1}, 
    身高{2}厘米", _   

  5. LaoWang.Name, LaoWang.Gender,
     LaoWang.Stature)   

  6. LaoWang.Eat() '這里引發(fā)事件   

  7. Console.Read   

  8. end sub   

  9. sub GoToHospital   

  10. Console.WriteLine("病人被送到醫(yī)院去了。")   

  11. end sub   

  12. end module   

  13. public class Human   

  14. public Name as String   

  15. public Gender as String   

  16. public Stature as integer   

  17. sub New(Byval Name as string, byval 
    Gender as String, byval Stature as integer)   

  18. me.Name = Name   

  19. me.Gender = Gender   

  20. me.Stature = Stature   

  21. end sub   

  22. sub New() '不帶參數的構造函數   

  23. end sub   

  24. public event FallIll   

  25. public sub Eat()   

  26. raiseevent FallIll   

  27. end sub   

  28. public sub Sleep()   

  29. end sub   

  30. public sub SeeADoctor()   

  31. end sub   

  32. public function Born() as Human   

  33. if Gender = "女" then   

  34. return new Human("","",50)   

  35. else   

  36. return nothing   

  37. end if   

  38. end function   

  39. end class  

VB.NET事件還可以帶參數。這樣在事件引發(fā)的時候可以附帶一個與事件有關的對象,以便事件的捕獲者對其進行處理。
比方我們把FallIll的定義改為:

  1. public event FallIll
    (Byval Name as String) 

然后把Eat的內容改為:

  1. raiseevent FallIll(me.Name)
     '將病人的名字交給事件的捕獲者。  

接著把GoToHospital的定義改為:

  1. sub GoToHospital(Byval Name 
    as String)
    '該過程的參數數量和種類必須與其捕獲
    的event的參數相同。   

  2. Console.WriteLine(Name & 
    "被送到醫(yī)院去了。")   

  3. end sub  

這時候運行我們就會看到:“老王被送到醫(yī)院去了?!?/p>

感謝你能夠認真閱讀完這篇文章,希望小編分享的“VB.NET事件在實際應用中有什么用”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業(yè)資訊頻道,更多相關知識等著你來學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI