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