新聞中心
學(xué)習(xí)VB.NET時(shí),你可能會(huì)遇到VB.NET共享成員問(wèn)題,這里將介紹VB.NET共享成員問(wèn)題的解決方法,在這里拿出來(lái)和大家分享一下實(shí)例訪問(wèn)VB.NET共享成員。

柳林網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)建站2013年開(kāi)創(chuàng)至今到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專(zhuān)注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。
大家都知道靜態(tài)成員在VB中叫做共享成員,雖然剛接受起來(lái)有點(diǎn)別扭,但“VB.NET共享成員”的確是名副其實(shí)的:
- Public Class Class1
- Public Shared i As Integer
- 'Other none-shared members
- End Class
不但像在C#中那樣,可以用Class1.i訪問(wèn)VB.NET共享成員i,還可以用實(shí)例變量來(lái)訪問(wèn):
- Dim c1 As New Class1
- c1.i = 100
就像i是c1的成員一樣!當(dāng)然只有一個(gè)i,任何實(shí)例去修改i的值都將導(dǎo)致所有i的值改變(因?yàn)槠鋵?shí)只有一個(gè))。甚至Me和MyClass也可以訪問(wèn)VB.NET共享成員。
- Me.i = 100
- MyClass.i = 100
這在C#中是不可能做到的,一個(gè)純正的C#程序員看到這些代碼一定會(huì)覺(jué)得匪夷所思。為了揭示它的工作原理,我們可以做下列實(shí)驗(yàn):
- Dim c1 As Class1
- c1.i = 100
注意,這里的c1為Nothing!,即使是Nothing的變量也可以訪問(wèn)VB.NET共享成員,而且不會(huì)出錯(cuò)。接下來(lái)我們實(shí)驗(yàn)更極端的情況:
- Dim o As Object = New Class1
- o.i = 100
結(jié)果——失敗,不能通過(guò)后期綁定訪問(wèn)VB.NET共享成員。現(xiàn)在結(jié)果已經(jīng)很明顯,只有在VB明確了解對(duì)象類(lèi)型的情況下,才能使用實(shí)例訪問(wèn)VB.NET共享成員,VB會(huì)自動(dòng)判斷類(lèi)型,然后將所有對(duì)共享成員訪問(wèn)的語(yǔ)句改寫(xiě)成
- Class1.i = 100
這樣的語(yǔ)法。Delphi也支持這一有趣的特征,而且李維在《Inside VCL》中將此說(shuō)成Delphi.NET相對(duì)于.NET的擴(kuò)展之一。
當(dāng)前題目:VB.NET共享成員高手經(jīng)驗(yàn)談
文章源于:http://m.5511xx.com/article/djdipjh.html


咨詢(xún)
建站咨詢(xún)
