在VB.NET中,下列声明数组的方法有什么区别吗?
- Dim cargoWeights(10) as Double
- cargoWeights = New Double(10) {}
'这是两个独立的陈述。他们不应该一个接一个地执行。
据我所知,第一个只是声明了一个数组变量,它保存了值'Nothing',直到为它分配了一个数组对象。换句话说,它尚未初始化。
但是第二个声明怎么样? “=”符号是否意味着变量已经被初始化并且不会保持“无”?是否会指向一个包含11个默认Double值的一维数组(0.0)?
编辑:
根据MSDN网站:
以下示例声明一个最初不指向任何数组的数组变量。
Dim twoDimStrings(,)As String
(...)变量twoDimStrings的值为Nothing。
来源:http://msdn.microsoft.com/en-us/library/18e9wyy0(v=vs.80).aspx
答案 0 :(得分:4)
Dim cargoWeights(10) as Double
和cargoWeights = New Double(10) {}
实际上都会初始化一个双精度数组,每个项目都设置为默认类型值,在本例中为0.0。 (如果是String
数据类型,则无效)
两种语法的区别在于,第二种语法可以将数组中每个项的值初始化为与默认值不同,如:
cargoWeights = New Double(10) {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}
要声明未初始化的数组,请使用Dim cargoWeights() As Double
或cargoWeights = New Double() {}
。