Protected Protected表示成員函數(shù)只能從當(dāng)前類的派生類訪問(wèn)。 Protected Sub Clear()
在以前的VB中,直至VB 4為止, Let、Set和Get屬性過(guò)程是分離的。VB.NET把同一屬性的屬性過(guò)程放到了一起:
Private msMyStringProperty As String
' 聲明區(qū)
Public Property MyStringProperty As String
Get
MyStringProperty = msMyStringProperty
End Get
Set
msMyStringProperty = MyStringProperty
End Set
End Property
VB.NET不再有Let屬性過(guò)程,因?yàn)樗匈x值語(yǔ)句的語(yǔ)法(無(wú)論是對(duì)象還是非對(duì)象)都已經(jīng)一樣。
語(yǔ)言方面的改動(dòng)遠(yuǎn)遠(yuǎn)超過(guò)了對(duì)體系結(jié)構(gòu)的改動(dòng)。對(duì)于大多數(shù)人來(lái)說(shuō)這些改動(dòng)都有意義,但仍有人對(duì)某些改動(dòng)存有異議。例如,在以前的版本中,許多任務(wù)可以用多種不同的方法完成,統(tǒng)一的編碼標(biāo)準(zhǔn)要么不存在,要么很難執(zhí)行。為了“清理”VB語(yǔ)言,Microsoft對(duì)VB作了一些重大的改動(dòng),許多以前可以有多種實(shí)現(xiàn)方法的任務(wù)現(xiàn)在只有一種方法。
除了前面幾個(gè)表格列出的內(nèi)容之外,下面是一些特別需要注意的地方。
首先,向過(guò)程參數(shù)傳遞數(shù)據(jù)的默認(rèn)方式由原來(lái)的傳遞引用(ByRef)變成了傳遞值(ByVal),這是一個(gè)很重要的改動(dòng)。通過(guò)引用傳遞參數(shù)比通過(guò)值傳遞參數(shù)面臨著更多的危險(xiǎn),這種危險(xiǎn)在于被調(diào)用過(guò)程可能無(wú)意地改變參數(shù)的值。VB.NET仍舊允許以引用方式傳遞參數(shù),但默認(rèn)參數(shù)傳遞方式的改變意味著程序必須作相應(yīng)的調(diào)整。
第二,VB.NET中不再有Set語(yǔ)句,把對(duì)象引用賦給變量現(xiàn)在只需一個(gè)等號(hào)就可以了,對(duì)象可以象任何其他值一樣對(duì)待。雖然省略Set簡(jiǎn)化了代碼,但也有一個(gè)附帶的影響:默認(rèn)屬性不再有效。例如,下面這種屬性值引用方法不再合法:
Text1 = "這是對(duì)象的默認(rèn)屬性值。"
相反,屬性值必須按照如下方式顯式引用:
Text1.Text = "這是對(duì)象的默認(rèn)屬性值。"
從表面上看來(lái),VB.NET作這種要求似乎沒(méi)有必要。但事實(shí)上,它對(duì)于擺脫默認(rèn)屬性來(lái)說(shuō)卻是必要的。例如,假設(shè)有一個(gè)名字為objFoo的對(duì)象變量,由于沒(méi)有了Set語(yǔ)句,假若屬性值仍舊可以象原來(lái)一樣引用,下面這個(gè)語(yǔ)句到底是什么意思就很難確定了:
objFoo = Text1
這個(gè)語(yǔ)句是設(shè)置了一個(gè)對(duì)Text1的引用,還是把Text1的Text屬性值賦給了objFoo?我們無(wú)法作出判斷,編譯器也同樣不能判斷。因此,拋棄Set語(yǔ)句也就意味著必須放棄默認(rèn)屬性值。
。NET中最不讓人喜歡的改動(dòng):Microsoft改變了一些早就在使用的數(shù)據(jù)類型的含義。在。NET中,Integer變成了32位,而Long則是64位�?梢韵胂�,這種改變將導(dǎo)致程序員頻繁地用錯(cuò)變量類型。例如,調(diào)用某個(gè)API函數(shù)時(shí)應(yīng)該使用16位的Integer還是使用32位的Integer?但愿Microsoft能夠重新考慮這個(gè)決定,采用一些新的變量類型名字,如Int32和Long64.
VB.NET引入了Option Strict關(guān)鍵詞。Option Strict關(guān)鍵詞用于替代Option Explicit.原來(lái)的VB允許把一個(gè)數(shù)字值賦給字符串變量,或者進(jìn)行其它類似的不正常賦值操作,Option Strict結(jié)束了這種情況。聲明Option Strict告訴Visual Basic.NET不要進(jìn)行任何強(qiáng)制的類型轉(zhuǎn)換。當(dāng)然,VB.NET也不是完全限制了類型自動(dòng)轉(zhuǎn)換:它允許進(jìn)行向下的自動(dòng)類型轉(zhuǎn)換(Cast),但不支持向上的自動(dòng)類型轉(zhuǎn)換。例如,如果不是使用“sngvariable = CSng(dblvariable)”這類語(yǔ)句進(jìn)行顯式的類型轉(zhuǎn)換,聲明為Single的變量不能設(shè)置為Double變量的值,因?yàn)樗赡軐?dǎo)致數(shù)據(jù)丟失;然而,Double變量可以直接設(shè)置為Single類型變量的值,且無(wú)需顯式地進(jìn)行類型轉(zhuǎn)換,因?yàn)檫@里不存在數(shù)據(jù)丟失問(wèn)題。使用Option Strict能夠幫助開(kāi)發(fā)者減少許多錯(cuò)誤,包括許多難以調(diào)試的錯(cuò)誤。附帶說(shuō)明:使用Option Strict時(shí)不允許再使用延遲綁定。
![]() |
![]() | ![]() .. 定價(jià):¥225 優(yōu)惠價(jià):¥213 更多書(shū)籍 |
![]() | ![]() .. 定價(jià):¥133 優(yōu)惠價(jià):¥133.0 更多書(shū)籍 |