방법: Visual Basic에서 배열 변수 초기화

배열 리터럴을 New 절에 포함하고 배열의 초기 값을 지정하여 배열 변수를 초기화합니다. 형식을 지정하거나 배열 리터럴의 값에서 유추하도록 허용할 수 있습니다. 형식을 유추하는 방법에 대한 자세한 내용은 배열의 “초기 값으로 배열 채우기”를 참조하세요.

배열 리터럴을 사용하여 배열 변수를 초기화하려면

  • New 절에서 또는 배열 값을 할당할 때 중괄호({}) 내부에 요소 값을 제공합니다. 다음 예제에서는 Char 형식의 요소가 있는 배열을 포함하도록 변수를 선언, 만들기, 초기화하는 여러 가지 방법을 보여줍니다.

    ' The following five lines of code create the same array.
    ' Preferred syntaxes are on the lines with chars1 and chars2.
    Dim chars1 = {"%"c, "&"c, "@"c}
    Dim chars2 As Char() = {"%"c, "&"c, "@"c}
    
    Dim chars3() As Char = {"%"c, "&"c, "@"c}
    Dim chars4 As Char() = New Char(2) {"%"c, "&"c, "@"c}
    Dim chars5() As Char = New Char(2) {"%"c, "&"c, "@"c}
    

    각 문이 실행된 후 생성된 배열의 길이는 3으로, 인덱스 0부터 인덱스 2까지의 요소에는 초기 값이 포함됩니다. 상한과 값을 모두 제공하는 경우 인덱스 0부터 상한까지 모든 요소에 대한 값을 포함해야 합니다.

    배열 리터럴에 요소 값을 제공하는 경우 인덱스 상한을 지정할 필요가 없습니다. 상한을 지정하지 않으면 배열 리터럴의 값 수에 따라 배열의 크기가 유추됩니다.

배열 리터럴을 사용하여 다차원 배열 변수를 초기화하려면

  • 중괄호 내의 중괄호({}) 내에 값을 중첩합니다. 중첩된 배열 리터럴이 모두 동일한 형식과 길이의 배열로 유추되는지 확인합니다. 다음 코드 예제에서는 다차원 배열 초기화의 몇 가지 예를 보여 줍니다.

    Dim numbers = {{1, 2}, {3, 4}, {5, 6}}
    Dim customerData = {{"City Power & Light", "http://www.cpandl.com/"},
                        {"Wide World Importers", "http://wideworldimporters.com"},
                        {"Lucerne Publishing", "http://www.lucernepublishing.com"}}
    
    ' You can nest array literals to create arrays that have more than two 
    ' dimensions.
    Dim twoSidedCube = {{{1, 2}, {3, 4}}, {{5, 6}, {7, 8}}}
    
  • 배열 경계를 명시적으로 지정하거나, 배열 경계를 그대로 두고 컴파일러가 배열 리터럴의 값을 기반으로 배열 범위를 유추하게 할 수 있습니다. 상한과 값을 모두 제공하는 경우 인덱스 0부터 모든 차원의 상한까지 모든 요소에 대한 값을 포함해야 합니다. 다음 예제에서는 Short 형식의 요소가 있는 2차원 배열을 포함하도록 변수를 선언, 만들기, 초기화하는 여러 가지 방법을 보여줍니다.

    ' The following five lines of code create the same array.
    ' Preferred syntaxes are on the lines with scores1 and scores2.
    Dim scores1 = {{10S, 10S, 10S}, {10S, 10S, 10S}}
    Dim scores2 As Short(,) = {{10, 10, 10}, {10, 10, 10}}
    
    Dim scores3(,) As Short = {{10, 10, 10}, {10, 10, 10}}
    Dim scores4 As Short(,) = New Short(1, 2) {{10, 10, 10}, {10, 10, 10}}
    Dim scores5(,) As Short = New Short(1, 2) {{10, 10, 10}, {10, 10, 10}}
    

    각 문이 실행된 후 생성된 배열에는 인덱스 (0,0), (0,1), (0,2), (1,0), (1,1), (1,2)이 있는 초기화된 요소 6개가 포함됩니다. 각 배열 위치에는 값 10이 포함됩니다.

  • 다음 예제에서는 다차원 배열을 반복합니다. Visual Basic으로 작성된 Windows 콘솔 애플리케이션에서 Sub Main() 메서드 내에 코드를 붙여넣습니다. 마지막 주석은 출력을 표시합니다.

    Dim numbers = {{1, 2}, {3, 4}, {5, 6}}
    
    ' Iterate through the array.
    For index0 = 0 To numbers.GetUpperBound(0)
        For index1 = 0 To numbers.GetUpperBound(1)
            Debug.Write(numbers(index0, index1).ToString & " ")
        Next
        Debug.WriteLine("")
    Next
    ' Output
    '  1 2
    '  3 4
    '  5 6
    

배열 리터럴을 사용하여 들쭉날쭉한 배열 변수를 초기화하려면

  • 중괄호({}) 내에 개체 값을 중첩합니다. 길이가 다른 배열을 지정하는 배열 리터럴을 중첩할 수도 있지만 들쭉날쭉한 배열의 경우 중첩된 배열 리터럴이 괄호(())로 묶여 있는지 확인합니다. 괄호는 중첩된 배열 리터럴을 강제로 계산하고 결과 배열은 들쭉날쭉한 배열의 초기 값으로 사용됩니다. 다음 코드 예제에서는 들쭉날쭉한 배열 초기화의 두 가지 예를 보여 줍니다.

    ' Create a jagged array of arrays that have different lengths.
    Dim jaggedNumbers = {({1, 2, 3}), ({4, 5}), ({6}), ({7})}
    
    ' Create a jagged array of Byte arrays.
    Dim images = {New Byte() {}, New Byte() {}, New Byte() {}}
    
  • 다음 예제에서는 들쭉날쭉한 배열을 반복합니다. Visual Basic으로 작성된 Windows 콘솔 애플리케이션에서 Sub Main() 메서드 내에 코드를 붙여넣습니다. 코드의 마지막 주석은 출력을 표시합니다.

    ' Create a jagged array of arrays that have different lengths.
    Dim jaggedNumbers = {({1, 2, 3}), ({4, 5}), ({6}), ({7})}
    
    For indexA = 0 To jaggedNumbers.Length - 1
        For indexB = 0 To jaggedNumbers(indexA).Length - 1
            Debug.Write(jaggedNumbers(indexA)(indexB) & " ")
        Next
        Debug.WriteLine("")
    Next
    
    ' Output:
    '  1 2 3 
    '  4 5 
    '  6
    '  7
    

참고 항목