2009-01-22 89 views
2

以下結構之間有什麼區別?爲什麼更喜歡一個呢?VB.NET Dim vs. New

第一:

Dim byteArray(20) as Byte 

號之二:

Dim byteArray() as Byte = new Byte(20) {} 

任何幫助,將不勝感激。

謝謝。

編輯 - 我更正了一些代碼。 「ReDim」應該是「暗淡」。

+4

注意,這兩個的指定上限的索引,其中,下限爲0,從而有效地分配* * 21 **項目而非20. – 2009-01-22 03:59:37

回答

2

它們都在託管堆上分配20個字節。

它們都將標識符'byteArray'設置爲指向那些字節。

帶有「new」運算符(子句)的語句允許初始化數組元素。


Dim byteArray() as Byte = new Byte(20) { 1, 2, 3, 4, 5, 6, ... } 

順便說一句,要分配一個沒有元素的數組,指定其中一個維度的大小爲-1。如果您需要訪問諸如長度之類的屬性而不拋出錯誤,這非常有用。

+1

當然,它是21個字節? – RobS 2009-01-27 13:46:34

+0

這是因爲Dim/Redim的語法是指定最後一個索引,而不是計數 – 2009-01-27 22:40:47

1

沒有區別。 Redim是vb 6開發人員熟悉的carryover語法。

2

這是一回事。

總是有超過1種方法去皮膚貓。

2

是的,一樣的。第二條語句是避免的,很少人會猜測它實際上創建了一個包含21個元素的數組。不是說從第一個陳述中可以明顯看出...

2

兩者都是一樣的。

Dim byteArray(20) as Byte將創建21個元素

Dim byteArray() as Byte = new Byte(20) {}陣列建立一個數組與20元件

相關問題