2010-02-16 51 views
2

來自C#背景,我不知道爲什麼下面的聲明返回一個長度= 2的數組,有人請賜教嗎?VB.NET數組初始化讓我困惑

Dim lTestArray(1) As String 

Console.WriteLine(lTestArray.Length) (writes 2)

+0

@Konrad:我站得更正了。 –

回答

3

VB.NET數組聲明供給上限陣列(即最大索引),長度。由於數組是基於0的,所以最大索引1給你兩個元素(0和1)。

+0

...並且它是基於零的,所以你在索引0和1處有元素 - 因此length = 2. – tvanfosson

+3

非常感謝,我的「爲什麼不喜歡VB.NET」清單中加入了這個! – Dominiek

+0

一種選擇是完全避免數組。 http://blogs.msdn.com/ericlippert/archive/2008/09/22/arrays-considered-somewhat-harmful.aspx –

1

在VB.NET中,您不指定數組的長度......您實際指定了最後一個可尋址元素的索引。由於.NET數組是基於0的,並且您指定1作爲最後一個可索引元素,所以長度爲2.