概括總結VB.NET共享方法
VB.NET還是比較常用的,于是我研究了一下VB.NET共享,在這里拿出來和大家分享一下,希望對大家有用。隨著對象的功能越來越強大,我們有時想訪問一些變量、函數或者程序而不需要一個實際的對象實例。在以前,我們可以鍵入這類型的代碼到一個代碼模塊中,而不管程序是否跟一些類有關。
VB.NET共享方法
#T#在VB.NET中我們有了一個較好的改變。不僅一個類可以擁有所有正常的方法和屬性(這些方法和屬性可以由創建類的實例來實現)而且它們可以擁有一些不需要創建類的實例的方法,這些方法就是本教程要介紹的共享方法。這些方法在其它的編程語言中也稱為靜態方法或者類方法。
一個共享方法不能作為一種普通的方法,通過一個對象的實例來訪問,而是可以從類直接訪問。下面是共享方法的一個簡單的例子:
- Public Class Math
- Shared Function Add(ByVal a As Integer, ByVal b As Integer) As Integer
- Return a + b
- End Function
- End Class
我們可以不用實例化一個Math對象,就可以訪問,代碼如下:
- Dim result As Integer
- result = Math.Add(5, 10)
現在請再仔細看看,這里我們不是使用一個變量,而是直接使用類的方法。如果用通常的方法就將導致錯誤,但是利用了共享方法一切都變得可以接受了。共享方法不僅可以通過通常的方法來訪問而且可以在不需要創建一個對象的條件下提供訪問的功能。實際上,當一個共享方法被調用的時候,沒有任何對象被創建,它就象再模塊中的一個程序可以直接被調用。
VB.NET共享共享方法和其它普通的方法一樣也可以被重載,所以可以利用相同的共享方法來創建一系列變化的方法,每一種方法有不同的參數列表。共享方法的缺省的轄域是Public。我們也可以載聲明中將共享方法設置為Friend、Protected或者Private。實際上,當重載方法的時候,只要參數列表不同我們就有不同的作用域。
究竟共享方法是如何使用的呢,下面我們看看一個例子。當我們想為輸入打開一個文本文件的時候,我們可以在File類中使用一個共享代碼,如下:
- Dim infile As StreamReader = File.OpenText(words.txt)
- Dim strIn As String
- str = infile.ReadLine()
這里沒有任何的類型的文件被創建。OpenText方法是一個共享方法,它打開一個文件并且返回一個StreamReader對象。另外一個例子來自System.Guid數據類型。這個類描述了一個全局的獨特的用戶ID(GUID)數值,但是我們可以通過一個共享方法來創建一個新的方法。
- Dim guidID As Guid()
- guidID = Guid.NewGuid()
這個NewGuid方法是直接從Guid類中調用的。它創建了一個新的Guid對象并且返回一個數值。