2011-02-19 52 views
4

我正在試用一個我在網上找到的程序。爲什麼有必要在聲明的末尾加上大括號?它給出了一個錯誤:「字節沒有構造函數」。在VB.NET中聲明一個變量爲Byte的問題

Dim data As Byte() = New Byte(1023) {} 

我不能這樣寫代碼,它會產生錯誤「字節不能是1維數組」。

Dim arr As Byte() = New Byte() 

你能向我解釋爲什麼會發生這種情況嗎?

回答

5

你需要花括號,因爲如果你不把他們來說,這意味着你要調用構造爲對象 - 這是出於不同的原因的錯誤:

  1. 您不能將單個對象分配給數組。 (這總是如此。)
  2. Byte沒有構造函數。 (這是隻有在這種特殊情況下正確的。)
+0

我從哪裏開始創建數組? – 2011-02-19 03:09:21

+0

當你說'As Byte()`而不是`As Byte`時。 – Mehrdad 2011-02-19 03:10:37

10

一些口味

Dim b() As Byte 'b is nothing 
    Dim b1(1023) As Byte 'b1 is an array of 1024 elements, all equal to 0 
    Dim b2() As Byte = New Byte() {85, 99, 1, 255} 'four elements 

    b = New Byte() {} 'zero element array 
    b = New Byte() {1, 2} 'two element array 

推理通常是一個壞主意。