VB.NET 是萬物皆對象,一個字符串是對象,一個窗體是對象,類的實例也是對象。所以不要糾結(jié)什么變量和對象。點虐 里面什么都可以看成對象。 還有在一個類里定義變量,如果是用Dim定義也可以的,只是這個變量是不可見的,用Public定義就可以。比如我們最常見的Form1.Width 可以這樣用,那就說明在Form類中Width 是用Public定義的。如果用Dim定義,就不能這樣用了
專注于為中小企業(yè)提供成都做網(wǎng)站、成都網(wǎng)站設(shè)計服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)邛崍免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千余家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。
第一個相當于 aa 就是Object的方法返回的那個實例。
第二個是實例化一個Object2類。
有些類的一些方法會返回一個結(jié)構(gòu)或者什么類。那么可以用第一種方法,將 aa 做為對這個返回實例的引用。
第二種方法,是通過調(diào)用類或結(jié)構(gòu)的初始化函數(shù)Sub New來實例化的。
哎,表達能力有限,也不曉得你明白了沒。
1.不正確
Dim abc As myClass,定義一個可以引用myClass類型對象的變量abc。這個abc變量存在于棧上。
abc=New myClass。New myClass創(chuàng)建myClass實例對象,這個對象存在于托管堆上。然后(同時)讓abc引用(指向)這個對象。
abc變量在棧上,而對象在托管堆上。
abc儲存的是對象的地址,而不是對象本身。
看下面的代碼
Dim a As myClass,b As myClass,c As myClass
a=New myClass
b=a
c=a
整個過程中只創(chuàng)建了一個myClass對象,位于托管堆上。
三個myClass類型的變量a、b、c位于棧上,都指向了這一個myClass對象
2.類的成員分 實例成員 和 靜態(tài)成員
實例成員 必須在實例對象上調(diào)用
靜態(tài)成員 可以直接調(diào)用,不需要實例對象。
普通變量賦值,使用Let關(guān)鍵字,通常Let需要省略。比如:
Dim i as Integer
Let i = 100
通常Let需要省略,所以上面語句會寫作: i = 100
而對象變量賦值,必須顯示的使用Set關(guān)鍵字,而且不準省略,比如:
Dim lblinf as Label '定義一個標簽對象lblinf
Set lblinf = Form1.Label1 '給lblinf變量賦值為Form1窗體的Label1對象
Let lblinf.Caption = "Label1被賦值了!" 'Let通常省略
實際上Let是已經(jīng)被丟棄的一個關(guān)鍵字,這里我給你提一下這個關(guān)鍵字,這樣你就能很清楚的記得這兩個關(guān)鍵字了,而在vb.Net中,連Set這個關(guān)鍵字也舍棄了。所有賦值語句,都直接寫,左邊是要賦值的變量或者對象,右邊是要賦的值、表達式或者對象!