在實(shí)際的編程中,數(shù)組是運(yùn)用很多的對(duì)象。象Array,List等都是對(duì)數(shù)組的一種封裝。
我們看看下面兩種的定義方法,能看出他們的區(qū)別嗎?
Dim tB1() As Byte
Dim tB2() As Byte = {}
這兩種都是定義一個(gè)字節(jié)數(shù)組,且數(shù)組里都沒有元素。
不過下面兩句話就能看出區(qū)別了。
Debug.Print(tB1 Is Nothing)
Debug.Print(tB2 Is Nothing)
第一句得到的結(jié)果是True,第二局得到的結(jié)果是False。說明,tB1是數(shù)組但沒有初始化過,等價(jià)于Nothing,tB2是數(shù)組,雖然沒有元素,但是初始化過,和Nothing不等價(jià),你可以訪問tB2的其他屬性,如Length,得到的是0,表明是一個(gè)空數(shù)組。而訪問tB1的其他屬性,如Length,就會(huì)報(bào)錯(cuò)。
空數(shù)組和未初始化的數(shù)組在很多地方還是有區(qū)別的。
例如:
Debug.Print(System.Text.Encoding.Default.GetString(tB1))
Debug.Print(System.Text.Encoding.Default.GetString(tB2))
雖然tB1和tB2中都沒有元素,但是由于tB1沒有初始化,系統(tǒng)會(huì)拋出一個(gè)異常。而tB2雖然沒有元素,但是表示一個(gè)0元素的數(shù)組,系統(tǒng)不會(huì)拋出異常,返回一個(gè)空字符串。
從這個(gè)能看出來,Nothing和0元素的數(shù)組還是有區(qū)別,這個(gè)是我們?nèi)菀缀鲆暤牡胤健?/p>
新聞熱點(diǎn)
疑難解答