我很长时间不知道以下几点之间的差异(如果有的话):
Dim myString() as String
和
Dim myString as String()
答案 0 :(得分:1)
没有区别。两者都将变量初始化为String
等于Nothing
的数组。你会发现在VB中可以有不止一种方法来做同样的事情。
尽管如此,Microsoft's VB Coding Conventions对阵列有这样的说法:
将数组指示符放在类型上,而不是放在变量上。例如,使用以下语法:
Dim letters4 As String() = {"a", "b", "c"}
请勿使用以下语法:
Dim letters3() As String
两种语法之间存在一些差异,我将尝试总结。第一个是事实上的VB语法,用于声明一个大小但该参数是可选的数组。
'Declare a single-dimension array of 5 values
Dim numbers(4) As Integer
'Declare a multi-dimensional array
Dim matrix(5, 5) As Double
但是不能使用大小的第二种语法:
Dim numbers as Integer(4)
'Compiler error: Array bounds cannot appear in type specifiers
但您可以使用new
运算符和初始化程序!
'Also an empty array with capacity for 5 values
Dim numbers as Integer() = new Integer(4) { }
这给我们带来了第二种语法:当我们想要声明和使用初始值填充数组时使用它(即数组文字)
Dim values As Double() = {1, 2, 3, 4, 5, 6}
在第二种情况下,您只是省略了数组文字,因此会产生与第一种情况相同的表达式。
请参阅MSDN中的 Arrays in Visual Basic 。