在VB.NET中建立空数组的建议方法是什么?

时间:2009-10-22 14:55:33

标签: vb.net arrays

在VB.NET中获取数组的最佳方法是什么,可以是Nothing或初始化并给它一个零长度?

我能想到的三个选项是:

ReDim oBytes(-1)

oBytes = New Byte(-1) {}

oBytes = New Byte() {}

第一个例子是我公司的大多数开发人员(我们以前做VB 6)一直使用的。我个人更喜欢第三个例子,因为它最容易理解正在发生的事情。

那么每种方法的积极和消极是什么(我知道选项2和3非常相似)?


修改
那么是否有人知道有理由避免ReDim其他因为它是VB日的延续?

如果这是所有人的话,我不会接受这个答案!

1 个答案:

答案 0 :(得分:12)

我建议:oBytes = New Byte() {}

你应该尽量避免使用像Redim那样的“经典VB主义”,以及经典VB时代的其他保留。我会推荐第三种选择。

修改

要提供有关避免原因的更多信息,请参阅this MSDN page。虽然该页面没有特别针对它提出建议,但您可以看到Redim存在其他语法不存在的缺点(以及混淆的可能性)。

  1. Redim只能用于现有的数组。即便如此,它在语义上等同于声明new数组。 Redim释放旧数组并创建一个新数组(因此Redim不具备“粘贴”或“切断”元素的能力。此外,除非使用Preserve关键字,否则它是破坏性的,即使没有可视指示正在进行分配。
  2. 因为Redim无法创建数组(但只能在现有数组上工作),所以它只能在过程中使用;在类级别,你被迫使用New Byte() {}方法,留下两个视觉上不同的模式来分配新数组,即使它们在语义上是相同的。