天天看點

在VB2005中使用零長度數組

 在實際的程式設計中,數組是運用很多的對象。象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://www.cnblogs.com/grenet/archive/2010/04/01/1701989.html,如需轉載請自行聯系原作者

繼續閱讀