代码之家  ›  专栏  ›  技术社区  ›  Ender

在vb.net中声明字节数组

  •  9
  • Ender  · 技术社区  · 14 年前

    当声明一个字节数组时,下面的区别是什么?是有一种,还是这只是两种不同的方式来处理同一件事?

    Dim var1 As Byte()
    Dim var2() As Byte
    
    2 回复  |  直到 14 年前
        1
  •  4
  •   Hans Olsson    14 年前

    没有区别。

    引文来自 spec 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的作用是一样的。

        2
  •  4
  •   DarinH    14 年前

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

    它们被报告为“var1()作为字节”和“var2()作为字节”

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