在VB.NET中声明一个字节数组

End*_*der 10 vb.net byte bytearray

声明一个字节数组时,以下是什么区别?有没有一个,或者这两个不同的方式是同一个东西?

Dim var1 As Byte()
Dim var2() As Byte
Run Code Online (Sandbox Code Playgroud)

Dar*_*inH 5

它们是同一件事。您可以通过查看 Reflector 中编译的代码或在 IDE 中编写该代码,然后将鼠标悬停在每个代码上来进行验证。

它们被报告为“var1() as byte”和“var2() as byte”

即使第一个是用替代语法声明的。


Han*_*son 5

没有区别。

规范中的引用(2003 规范,但与 2010 规范相同,可在此处下载):

数组类型是通过向现有类型名称添加修饰符来指定的。

也可以通过在变量名称上放置数组类型修饰符或数组初始化修饰符来将变量声明为数组类型。

为清楚起见,在同一个声明中同时对变量名和类型名使用数组类型修饰符是无效的

以下是显示所有选项的规范示例:

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
Run Code Online (Sandbox Code Playgroud)

从评论中可以看出, a1 和 a4 做同样的事情。