miércoles, 4 de enero de 2017

Matrices como valores devueltos y parámetros

Matrices como valores devueltos y parámetros

Para devolver una matriz desde un procedimiento Function, especifique el tipo de datos de matriz y el número de dimensiones como tipo de valor devuelto de Function (Instrucción). Dentro de la función, declare una variable de matriz local con el mismo tipo de datos y número de dimensiones. En la Return (Instrucción), incluya la variable de matriz local sin paréntesis.
Para especificar una matriz como parámetro para un procedimiento Sub o Function, defina el parámetro como una matriz con un tipo de datos especificado y el número de dimensiones. En la llamada al procedimiento, envíe una variable de matriz con el mismo tipo de datos y número de dimensiones.
En el ejemplo siguiente, la función GetNumbers devuelve Integer(). Este tipo de matriz es una matriz unidimensional de tipo Integer. El procedimiento ShowNumbers acepta un argumento Integer().
    Public Sub Process()
        Dim numbers As Integer() = GetNumbers()
        ShowNumbers(numbers)
    End Sub

    Private Function GetNumbers() As Integer()
        Dim numbers As Integer() = {10, 20, 30}
        Return numbers
    End Function

    Private Sub ShowNumbers(numbers As Integer())
        For index = 0 To numbers.GetUpperBound(0)
            Debug.WriteLine(numbers(index) & " ")
        Next
    End Sub

    ' Output:
    '   10
    '   20
    '   30
En el ejemplo siguiente, la función GetNumbersMultiDim devuelve Integer(,). Este tipo de matriz es una matriz bidimensional de tipo Integer. El procedimiento ShowNumbersMultiDim acepta un argumento Integer(,).
    Public Sub ProcessMultidim()
        Dim numbers As Integer(,) = GetNumbersMultidim()
        ShowNumbersMultidim(numbers)
    End Sub

    Private Function GetNumbersMultidim() As Integer(,)
        Dim numbers As Integer(,) = {{1, 2}, {3, 4}, {5, 6}}
        Return numbers
    End Function

    Private Sub ShowNumbersMultidim(numbers As Integer(,))
        For index0 = 0 To numbers.GetUpperBound(0)
            For index1 = 0 To numbers.GetUpperBound(1)
                Debug.Write(numbers(index0, index1).ToString & " ")
            Next
            Debug.WriteLine("")
        Next
    End Sub

    ' Output  
    '  1 2  
    '  3 4  
    '  5 6

No hay comentarios: