VB.NET事件在實際應(yīng)用中的作用體現(xiàn)
VB.NET事件在實際應(yīng)用中具有非常重要的意義。對于開發(fā)人員來說,首先要掌握的就是VB.NET事件這樣的基礎(chǔ)知識。下面我們就來通過這篇文章介紹的內(nèi)容對此進行一個詳細的解讀。#t#
VB.NET中的類的構(gòu)造函數(shù)是
- sub New()
- end sub
當然,你也可以加參數(shù)。比如Human類的構(gòu)造函數(shù):
- sub New(Byval Name as string,
byval Gender as String, byval
Stature as integer) - me.Name = Name 'me是VB.NET中的
關(guān)鍵字,表示對象自己,如同java中 - me.Gender = Gender '的this。
java中的super在VB.NET中就是MyBase - me.Stature = Stature
- end sub
這樣,我們的老王就是
- dim LaoWang As new Human
("老王", "男", 177)
這樣的話,構(gòu)造Human對象的時候就必須帶參數(shù)了。我們可以另加一個不帶參數(shù)的New過程。這里就略過了。
對象不是死的,是活的。對象應(yīng)該能夠主動向外界做出一些表示。這就是事件。比如一個人生了病。這個時候我們就要把他送到醫(yī)院去。我們先在Human類當中定義一個VB.NET事件:
- public event FallIll
我們假設(shè)某人暴飲暴食,吃出病了。在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中并未直接調(diào)用GoToHospital。
- dim LaoWang as Human
- LaoWang = new Human("老王", "男", 177)
- AddHandler LaoWang.FallIll,
AddressOf GoToHospital- Console.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() '不帶參數(shù)的構(gòu)造函數(shù)
- 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事件還可以帶參數(shù)。這樣在事件引發(fā)的時候可以附帶一個與事件有關(guān)的對象,以便事件的捕獲者對其進行處理。
比方我們把FallIll的定義改為:
- public event FallIll
(Byval Name as String)
然后把Eat的內(nèi)容改為:
- raiseevent FallIll(me.Name)
'將病人的名字交給事件的捕獲者。
接著把GoToHospital的定義改為:
- sub GoToHospital(Byval Name
as String)
'該過程的參數(shù)數(shù)量和種類必須與其捕獲
的event的參數(shù)相同。- Console.WriteLine(Name &
"被送到醫(yī)院去了。")- end sub
這時候運行我們就會看到:“老王被送到醫(yī)院去了。”,VB.NET事件的相關(guān)操作就為大家介紹到這里。