新聞中心
學習VB.NET時,你可能會遇到VB.NET共享成員問題,這里將介紹VB.NET共享成員問題的解決方法,在這里拿出來和大家分享一下實例訪問VB.NET共享成員。

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


咨詢
建站咨詢
