2011-12-13 53 views

回答

2

這是一樣的。但是,請注意以下區別:

Dim b As Byte()   ' Declares a variable of type byte array, initialized to Nothing 
Dim b() As Byte   ' Declares a variable of type byte array, initialized to Nothing 
Dim b As New Byte()  ' Creates a new, single byte with value 0 
Dim b = New Byte()  ' Creates a new, single byte with value 0 
Dim b = New Byte() {}  ' Creates a new byte array with zero elements 
Dim b = New Byte() {1, 2} ' Creates a new byte array with two elements 

這是有點混亂,因爲在VB T()可以指不帶參數T類型(a)的一個構造呼叫和(b)的T陣列。

+0

我認爲所有的例子都是Option Strict On友好的。不鼓勵其他人在聲明中明確表示是一種壞習慣,遲早會導致問題。 – dbasnett

+0

是前兩個例子,dim b = new byte(){}相同嗎?對不起,我覺得很困惑。 –

+0

@dbasnett:示例* *與Option Strict On兼容。 (我贊同你的觀點。) – Heinzi

2

不,這種情況沒有什麼區別。對於任何類型的數組(整型,字符串或任何其他類)都是一樣的。

如果你想指定數組長度,它只會有所不同。這是有效的語法:

Dim b(5) As Byte 

雖然這是無效的:

Dim b As Byte(5) 
0

沒有區別。後面的語法更多是爲了向後兼容。在.NET之前,你需要定義一個byte類型的數組變量。但是,在.Net中,它是一個字節數組類型的變量。這兩種語法都適用於任何類型。