在VB.NET中获取数组的最佳方法是什么,可以是Nothing或初始化并给它一个零长度?
我能想到的三个选择是:
ReDim oBytes(-1)
oBytes = New Byte(-1) {}
oBytes = New Byte() {}
第一个例子是我公司的大多数开发人员(我们以前做VB 6)一直使用的。我个人更喜欢第三个例子,因为它最容易理解发生了什么。
那么每种方法的积极和消极是什么(我知道选项2和3非常相似)?
编辑
所以有人都知道要避免的理由 ReDim
另外因为它是VB日的延续?
并非我不会接受这个答案,如果这是所有人都有的!
我建议: oBytes = New Byte() {}
你应该尽量避免使用“经典的VB-isms” Redim
和其他经典VB时代的遗产。我会推荐第三种选择。
编辑
要提供有关为何避免它的更多信息,请参阅 这个MSDN页面。虽然该页面没有特别建议反对它,你可以看到 Redim
遭受其他语法没有的缺点(以及混淆的可能性)。
Redim
只能用于 现有 阵列。即便如此,它在语义上等同于声明a new
阵列。 Redim
释放旧数组并创建一个新数组(因此它不像 Redim
有能力“坚持”或“砍掉”元素)。此外,它是破坏性的,除非 Preserve
即使没有可视指示正在进行分配,也会使用关键字。
- 因为
Redim
无法创建数组(但只能在现有数组上工作),它只能在一个过程中使用;在班级你被迫使用 New Byte() {}
方法,留下两个视觉上不同的模式来分配新数组,即使它们在语义上是相同的。