VB.NET昏暗与新

时间:2009-01-22 02:15:26

标签: vb.net memory-management new-operator

以下结构之间有什么区别?为什么选择一个而不是另一个?

第一名:

Dim byteArray(20) as Byte

第二名:

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

任何帮助将不胜感激。

谢谢。

修改 - 我更正了一些代码。 “ReDim”应该是“Dim”。

5 个答案:

答案 0 :(得分:2)

这是一回事。

永远不止一只皮肤猫。

答案 1 :(得分:2)

它们都在托管堆上分配20个字节。

它们都将标识符'byteArray'设置为指向那些字节。

带有“new”运算符(子句)的语句允许初始化数组元素。


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

顺便提一下,为一个维度分配一个没有元素大小为-1的数组。如果您需要访问长度等属性而不抛出错误,这将非常有用。

答案 2 :(得分:2)

是的,同样的。第二个语句是一个要避免的语句,很少有人会猜测它实际上创建了一个包含21个元素的数组。并非从第一个陈述中显而易见......

答案 3 :(得分:2)

两者都是一样的。

Dim byteArray(20) as Byte将创建一个包含21个元素的数组

Dim byteArray() as Byte = new Byte(20) {}将创建一个包含20个元素的数组

答案 4 :(得分:1)

没有区别。 Redim是vb 6开发人员熟悉的结转语法。