在VB.NET中声明数组的不同方式

3
在VB.NET中,以下两种方式声明数组有什么不同?
- Dim cargoWeights(10) as Double

- cargoWeights = New Double(10) {}

这是两个独立的语句,它们不应该依次执行。
据我所知,第一个仅声明了一个数组变量,其中包含值“Nothing”,直到将某个数组对象分配给它为止。换句话说,它尚未初始化。
但第二个语句呢?等号表示变量已经被初始化并且不会保持'Nothing'吗?它将指向一个由十一个默认Double值(0.0)组成的一维数组吗?
根据MSDN网站:
以下示例声明一个数组变量,最初不指向任何数组。 Dim twoDimStrings() As String (...) 变量twoDimStrings的值为Nothing。
来源:http://msdn.microsoft.com/en-us/library/18e9wyy0(v=vs.80).aspx

你的陈述“第一个仅声明了一个数组变量,该变量保存值'Nothing',直到分配给它某个数组对象。”是不正确的。而你可以轻易地自己测试一下... - Mitch Wheat
@MitchWheat 那么我应该如何理解我最后的报价? - Enrique
1个回答

5

无论是Dim cargoWeights(10) as Double还是cargoWeights = New Double(10) {},都会初始化一个双精度浮点数数组,其中每个元素都设置为默认类型值,这种情况下为0.0(或如果数据类型为String则为Nothing)。

两种语法的区别在于第二种方法可以将数组中每个元素的初始值设置为与默认值不同的值,例如:

cargoWeights = New Double(10) {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}

为了声明未初始化的数组,请使用 Dim cargoWeights() As DoublecargoWeights = New Double() {}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接