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