声明字节数组时,以下内容有什么区别?是否有一个,或者这两种不同的方式是同一件事?
Dim var1 As Byte()
Dim var2() As Byte
答案 0 :(得分:4)
他们是一回事。您可以通过查看反射器中的已编译代码,或者在IDE中编写该代码,然后将鼠标悬停在每个代码上来验证。
它们被报告为“var1()as byte”和“var2()as byte”
即使第一个是用替代语法声明的。
答案 1 :(得分:4)
没有区别。
来自spec(2003规范,但2010规范中可以下载的here)中的引言:
通过向现有类型名称添加修饰符来指定数组类型。
通过在变量名称上放置数组类型修饰符或数组初始化修饰符,也可以将变量声明为数组类型。
为清楚起见,在同一声明中的变量名和类型名上都有一个数组类型修饰符是无效的。
以下是规范中显示所有选项的示例:
Module Test
Sub Main()
Dim a1() As Integer ' Declares 1-dimensional array of integers.
Dim a2(,) As Integer ' Declares 2-dimensional array of integers.
Dim a3(,,) As Integer ' Declares 3-dimensional array of integers.
Dim a4 As Integer() ' Declares 1-dimensional array of integers.
Dim a5 As Integer(,) ' Declares 2-dimensional array of integers.
Dim a6 As Integer(,,) ' Declares 3-dimensional array of integers.
' Declare 1-dimensional array of 2-dimensional arrays of integers
Dim a7()(,) As Integer
' Declare 2-dimensional array of 1-dimensional arrays of integers.
Dim a8(,)() As Integer
Dim a9() As Integer() ' Not allowed.
End Sub
End Module
从评论中可以看出,a1和a4做同样的事情。