首先你是怎么重寫結(jié)構(gòu)的Sub New的呢?不會有這個錯誤嗎:“結(jié)構(gòu)無法聲明沒有參數(shù)的非共享“Sub New”?
岢嵐網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)公司成立與2013年到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。
結(jié)構(gòu)是值類型,和類不一樣,不一定要有構(gòu)造函數(shù)。直接
Dim?B(2)?As?A
如果有一個含參數(shù)的Sub New(i As Integer)
Dim?B()?As?A={New?A(1),?New?A(2)}
有時要初始化很多個的時候可以用循環(huán)
Dim?c?As?Integer?=?50
Dim?B(c)?As?A
For?i?=?0?To?c
B(i)?=?New?A(i)
Next
不過這樣是對變量重新賦值,這種方法用在類上比較好。
看看這個有幫助哦:
實例化引用類型的實例時,需要用到new關(guān)鍵字,其含義為:向指定類型的實例分配內(nèi)存空間。只有為一個類型實例分配內(nèi)存空間后,這個實例才能被使用。對于值類型,一般不用new。(在C#中,即便是值類型,也可以使用new 關(guān)鍵字,不知道VB中是不是這個樣子.)
Dim Frms As Form = New frmNew
語法錯誤
frmNew是一個沒有定義的窗體,當(dāng)然提示未定義類型
你的意思大概是想定義一個窗體類型變量:
Dim frmNew as Form
顧名思義,new就是給變量賦值一個新的對象
dim不加new就是說變量是XX類型的,但它不是一個真正的XX對象。如果給這個變量賦值的話,實際上就是把某一對象的指針存到變量里,它依舊不是一個對象
一個普通的類,里面有一些數(shù)據(jù),你要弄一個對象的話,需要初始化所有類中的數(shù)據(jù)并調(diào)用構(gòu)造函數(shù)。這時候我們就用new了。如果你不用new,然后直接使用的話,會引發(fā)null異常
當(dāng)然上面的討論不包括Integer、String、Long這樣的數(shù)值類型,這些不能用new
new 就是實例化,比如實例化一個類,你才能訪問,,
好比,你是張三,把你的地址告訴了我,我在能找到你家在哪,這個過程就可以稱為實例化。
使用New關(guān)鍵字建立一個新的對象和用它屬的類來定義是一樣的。New關(guān)鍵字可以被用作來建立一個窗體、類模塊以及集合的實例。用戶在設(shè)計的時候建立的每一個窗體都是一個類。New關(guān)鍵字能夠用來建立一個類的實例。
可以通過以下步驟來建立一個類的實例:
(1)在窗體上畫一個按鈕和幾個其他的控件。
(2)按鈕的Click事件過程加入以下代碼:
Dim x AS New Form1
x.Show
(3)運行程序,并且點擊幾次按鈕,把最前面的窗體移開,因為窗體是一個有可視界面的類,此時可以看見有很多窗體的拷貝,每一個窗體具有相同的控件,并且出現(xiàn)在一個地方。
(4)將列代碼加到按鈕的click事件過程中:
Dim f As Form1
f=New Form1
f.text="hello"
f.Show
使用New關(guān)鍵字可以從類模塊中定義的類中建立一個新的集合和對象,要知道它們怎樣工作,可以參考下面的例子:
(1)建立一個新的工程,并且在一個名為Form1的窗體上畫一個按鈕控件。
(2)在Project(項目)菜單下,選擇"Add Class"給工程添加一個類
(3)把新的類命名為ShowMe.VB
(4)在該新類中加入如下代碼:
PUblic Class ShowMe
Sub ShowFrm()
Dim frmNew As Form1
frmNew=New Form1
frmNew.Show()
frmNew.WindowState=1
End Sub
End Class
(5)在Button1_click事件的過程中加入如下代碼:Protected Sub Button1_Click(Byval sender As System.Object,_ Byval AS System.EventArgs) Dim clsNew As New ShowMe() clsNew.ShowFrm()End Sub
運行程序,并且點擊幾次按鈕,將看見每創(chuàng)建一個ShowMe類的新的實例時,在桌面上有一個最小化的窗體的圖標(biāo)。
New關(guān)鍵字只能用來建立一個類的對象,不能建立一個基于基本的數(shù)據(jù)類型的對象,例如Integer。而且,不能建立一個基于一個具體對象的對象。例如,下面的代碼根據(jù)一個名為SomeClass的類,建立了一個名為Objx的對象,面后又錯誤地企圖根據(jù)對象Objx再建立一個其他的對象:
Dim Objx As New SomeClass()
Dim Objx AS New Objx()
以上代碼是非法的。
呵呵##~