VB.NET事件觸發(fā)方式
VB.NET中的事件是一個(gè)非常重要的概念。對(duì)于初學(xué)者來說,在學(xué)習(xí)的過程中一定要重點(diǎn)注意這方面的內(nèi)容。那么接下來就讓我們一起對(duì)VB.NET事件的基本概念進(jìn)行一個(gè)詳細(xì)的解讀,加深這方面的理解。
事件
在VB.NET中,繼承是完全支持VB.NET事件的。如果一個(gè)基類定義了一個(gè)Public事件,那么這個(gè)事件可以通過基類的代碼或者任何由基類繼承而來的子類所觸發(fā)。
舉個(gè)例子吧,我們可以先定義一個(gè)基類,代碼如下:
- Public Class Parent
- Public Event ParentEvent()
- Public Sub DoEvent()
- RaiseEvent ParentEvent()
- End Sub
- End Class
很顯然,類中的代碼可以觸發(fā)ParentEvent事件。我們還可以這樣來創(chuàng)建一個(gè)子類:
- Public Class SubClass
- Inherits Parent
- Public Sub DoSomething()
- RaiseEvent ParentEvent()
- End Sub
- End Class
這個(gè)子類是通過使用Inherits關(guān)鍵字繼承而來的,它不僅得到了父類的屬性和方法,而且繼承了基類的事件。#t#
VB.NET事件可以定義任何的作用域。如果定義為Private事件,那么它就只可以通過發(fā)送對(duì)象來獲得,但是Public事件就可以被任何對(duì)象訪問。而Protected事件可以通過定義類或者子類來創(chuàng)建對(duì)象進(jìn)行訪問。另外Friend 事件可以被VB.NET工程中的任何對(duì)象訪問。
不象方法,事件不能使用Overloads關(guān)鍵字來進(jìn)行重載。一個(gè)類可以使用任何特定的名字來定義一個(gè)事件。因?yàn)槿魏巫宇悓⒆詣?dòng)從父類重得到事件,所有Override關(guān)鍵字就顯得沒什么作用,故不能用于事件中。
共享事件
VB.NET事件可以定義為Shared。共享方法可以觸發(fā)共享事件,而不能觸發(fā)非共享事件,具體例子如下:
- Public Class EventSource
- Shared Event SharedEvent()
- Public Shared Sub DoShared()
- RaiseEvent SharedEvent()
- End Sub
- End Class
一個(gè)共享事件也可以由共享方法或者非共享方法來觸發(fā),下面是相應(yīng)的例子:
- Public Class EventSource
- Public Event TheEvent()
- Shared Event SharedEvent()
- Public Sub DoSomething()
- RaiseEvent TheEvent()
- RaiseEvent SharedEvent()
- End Sub
- Public Shared Sub DoShared()
- RaiseEvent SharedEvent()
- End Sub
- End Class
如果你想從一個(gè)共享方法中觸發(fā)一個(gè)非共享事件就將導(dǎo)致一個(gè)語法錯(cuò)誤。
以上就是對(duì)VB.NET事件的相關(guān)概念介紹。