在實際的編程中,數組是運用很多的對象。象Array,List等都是對數組的一 種封裝。
我們看看下面兩種的定義方法,能看出他們的區別嗎?
Dim tB1() As Byte
Dim tB2() As Byte = {}
這兩種都是定義一個字節數組,且 數組裡都沒有元素。
不過下面兩句話就能看出區別了。
Debug.Print(tB1 Is Nothing)
Debug.Print(tB2 Is Nothing)
第一句得到的結果是True,第二局得到的結果是False。說明,tB1是數組 但沒有初始化過,等價於Nothing,tB2是數組,雖然沒有元素,但是初始化過, 和Nothing不等價,你可以訪問tB2的其他屬性,如Length,得到的是0,表明是一 個空數組。而訪問tB1的其他屬性,如Length,就會報錯。
空數組和未初 始化的數組在很多地方還是有區別的。
例如:
Debug.Print (System.Text.Encoding.Default.GetString(tB1))
Debug.Print (System.Text.Encoding.Default.GetString(tB2))
雖然tB1和tB2中都沒 有元素,但是由於tB1沒有初始化,系統會拋出一個異常。而tB2雖然沒有元素, 但是表示一個0元素的數組,系統不會拋出異常,返回一個空字符串。
從 這個能看出來,Nothing和0元素的數組還是有區別,這個是我們容易忽視的地方 。
出處:http://grenet.cnblogs.com/