2010-10-13 20 views
7

Podczas deklarowania tablicy bajtów jaka jest różnica między następującymi elementami? Czy istnieje jeden, czy też są to tylko dwa różne sposoby postępowania w tej samej sprawie?Deklarowanie tablicy bajtów w VB.NET

Dim var1 As Byte() 
Dim var2() As Byte 

Odpowiedz

3

Nie ma różnicy.

Cytaty z spec (2003 ciemno, ale sama w specyfikacji 2010, jak można pobrać here):

rodzaje tablic są określone przez dodanie modyfikatora do istniejącej nazwy typu.

Zmienna może być również zadeklarowana jako typ tablicy przez wstawienie modyfikatora tablicy lub modyfikatora inicjalizacji tablicy do nazwy zmiennej.

Dla jasności, nie jest ważne, aby mieć modyfikator typu array zarówno nazwy zmiennej i nazwy typu w tej samej deklaracji.

A poniżej próbka od spec, który pokazuje wszystkie opcje:

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 

I jak można zauważyć w komentarzach, A1 i A4 nie to samo.

4

To jest to samo. Możesz to sprawdzić, patrząc na skompilowany kod w reflektorze lub wpisując ten kod w IDE, a następnie najeżdżając myszą na każde z nich.

Są one wykazywane jako „var1() jako bajt” i „VAR2() jako bajt”

chociaż pierwszy został uznany ze składnią alternatywnej.

Powiązane problemy