這個(gè)是類(lèi)的初始化方式。舉個(gè)栗子
讓客戶(hù)滿(mǎn)意是我們工作的目標(biāo),不斷超越客戶(hù)的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶(hù),將通過(guò)不懈努力成為客戶(hù)在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:空間域名、虛擬主機(jī)、營(yíng)銷(xiāo)軟件、網(wǎng)站建設(shè)、江源網(wǎng)站維護(hù)、網(wǎng)站推廣。
public?class?a
private?mCode?as?string
public?sub?new()
mCode?=?"123"
end?sub
public?sub?new(byval?code?as?string)
mCode?=?code
end?sub
end?class
使用這個(gè)類(lèi)的時(shí)候
dim?HaveA?as?new?a("win")
dim?HaveB?as?new?a()
第一個(gè)情況,類(lèi)中的變量mCode是“123”
第二中情況,類(lèi)中的變量mCode是“win”
這個(gè)new就叫做類(lèi)的構(gòu)造函數(shù)。
這里看到了兩個(gè)new,他們一個(gè)有參數(shù),一個(gè)沒(méi)有參數(shù),這個(gè)叫做函數(shù)重載。
首先你是怎么重寫(xiě)結(jié)構(gòu)的Sub New的呢?不會(huì)有這個(gè)錯(cuò)誤嗎:“結(jié)構(gòu)無(wú)法聲明沒(méi)有參數(shù)的非共享“Sub New”?
結(jié)構(gòu)是值類(lèi)型,和類(lèi)不一樣,不一定要有構(gòu)造函數(shù)。直接
Dim?B(2)?As?A
如果有一個(gè)含參數(shù)的Sub New(i As Integer)
Dim?B()?As?A={New?A(1),?New?A(2)}
有時(shí)要初始化很多個(gè)的時(shí)候可以用循環(huán)
Dim?c?As?Integer?=?50
Dim?B(c)?As?A
For?i?=?0?To?c
B(i)?=?New?A(i)
Next
不過(guò)這樣是對(duì)變量重新賦值,這種方法用在類(lèi)上比較好。
看看這個(gè)有幫助哦:
顧名思義,new就是給變量賦值一個(gè)新的對(duì)象
dim不加new就是說(shuō)變量是XX類(lèi)型的,但它不是一個(gè)真正的XX對(duì)象。如果給這個(gè)變量賦值的話(huà),實(shí)際上就是把某一對(duì)象的指針存到變量里,它依舊不是一個(gè)對(duì)象
一個(gè)普通的類(lèi),里面有一些數(shù)據(jù),你要弄一個(gè)對(duì)象的話(huà),需要初始化所有類(lèi)中的數(shù)據(jù)并調(diào)用構(gòu)造函數(shù)。這時(shí)候我們就用new了。如果你不用new,然后直接使用的話(huà),會(huì)引發(fā)null異常
當(dāng)然上面的討論不包括Integer、String、Long這樣的數(shù)值類(lèi)型,這些不能用new
實(shí)例化一個(gè)對(duì)象使用New,實(shí)例化就是調(diào)用一次構(gòu)造函數(shù) 比如:
Dim A As New TR(“dsdsd”) ‘若該TR對(duì)象的構(gòu)造函數(shù)有參數(shù)ByVal s As String
A.fun() '使用一些公開(kāi)方法,屬性
如果僅僅是這樣:
Dim A As TR
將不會(huì)執(zhí)行構(gòu)造函數(shù),你將不能使用一些公開(kāi)方法,屬性
A.fun() ’錯(cuò)誤
'--------------------
百度VB2010(VB.NET)吧建設(shè)發(fā)展中,需要你的支持和幫助!!!
快加入我們吧!發(fā)表你的疑問(wèn),經(jīng)驗(yàn),程序,分享..
讓我們共同進(jìn)步!