您好,登錄后才能下訂單哦!
這篇文章主要介紹了VB.NET事件在實際應用中有什么用,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
VB.NET中的類的構造函數是
sub New()
end sub
當然,你也可以加參數。比如Human類的構造函數:
sub New(Byval Name as string,
byval Gender as String, byval
Stature as integer)
me.Name = Name 'me是VB.NET中的
關鍵字,表示對象自己,如同java中
me.Gender = Gender '的this。
java中的super在VB.NET中就是MyBase
me.Stature = Stature
end sub
這樣,我們的老王就是
dim LaoWang As new Human
("老王", "男", 177)
這樣的話,構造Human對象的時候就必須帶參數了。我們可以另加一個不帶參數的New過程。這里就略過了。
對象不是死的,是活的。對象應該能夠主動向外界做出一些表示。這就是事件。比如一個人生了病。這個時候我們就要把他送到醫(yī)院去。我們先在Human類當中定義一個VB.NET事件:
public event FallIll
我們假設某人暴飲暴食,吃出病了。在Eat過程中寫上:
public sub Eat()
raiseevent FallIll
'raiseevent用來引發(fā)一個事件end sub
外界怎樣來接收這個事件呢?用AddHandler。我們要在sub Main中先定義一個過程:
sub GoToHospital
Console.WriteLine
("病人被送到醫(yī)院去了。")end sub
然后將這個過程綁定到一個具體的對象的事件上:
AddHandler LaoWang.FallIll,
AddressOf GoToHospital
這樣,一旦執(zhí)行LaoWang.Eat,就會引發(fā)FallIll事件,這時GoToHospital過程就會執(zhí)行。VB.NET事件完整的代碼如下:
imports System public module MyModule
sub Main '在sub Main中并未直接調用GoToHospital。
dim LaoWang as Human
LaoWang = new Human("老王", "男", 177)
AddHandler LaoWang.FallIll,
AddressOf GoToHospitalConsole.writeline("{0}, {1},
身高{2}厘米", _LaoWang.Name, LaoWang.Gender,
LaoWang.Stature)LaoWang.Eat() '這里引發(fā)事件
Console.Read
end sub
sub GoToHospital
Console.WriteLine("病人被送到醫(yī)院去了。")
end sub
end module
public class Human
public Name as String
public Gender as String
public Stature as integer
sub New(Byval Name as string, byval
Gender as String, byval Stature as integer)me.Name = Name
me.Gender = Gender
me.Stature = Stature
end sub
sub New() '不帶參數的構造函數
end sub
public event FallIll
public sub Eat()
raiseevent FallIll
end sub
public sub Sleep()
end sub
public sub SeeADoctor()
end sub
public function Born() as Human
if Gender = "女" then
return new Human("","",50)
else
return nothing
end if
end function
end class
VB.NET事件還可以帶參數。這樣在事件引發(fā)的時候可以附帶一個與事件有關的對象,以便事件的捕獲者對其進行處理。
比方我們把FallIll的定義改為:
public event FallIll
(Byval Name as String)
然后把Eat的內容改為:
raiseevent FallIll(me.Name)
'將病人的名字交給事件的捕獲者。
接著把GoToHospital的定義改為:
sub GoToHospital(Byval Name
as String)
'該過程的參數數量和種類必須與其捕獲
的event的參數相同。Console.WriteLine(Name &
"被送到醫(yī)院去了。")end sub
這時候運行我們就會看到:“老王被送到醫(yī)院去了?!?/p>
感謝你能夠認真閱讀完這篇文章,希望小編分享的“VB.NET事件在實際應用中有什么用”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業(yè)資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。