Cómo: Asignar una matriz a otra (Visual Basic)How to: Assign One Array to Another Array (Visual Basic)

Dado que las matrices son objetos, puede usarlas en instrucciones de asignación como otros tipos de objeto.Because arrays are objects, you can use them in assignment statements like other object types. Una variable de matriz contiene un puntero a los datos que conforman los elementos de la matriz y la información de rango y longitud, y una asignación solo copia este puntero.An array variable holds a pointer to the data constituting the array elements and the rank and length information, and an assignment copies only this pointer.

Para asignar una matriz a otra matrizTo assign one array to another array

  1. Asegúrese de que las dos matrices tienen el mismo rango (número de dimensiones) y tipos de datos de elementos compatibles.Ensure that the two arrays have the same rank (number of dimensions) and compatible element data types.

  2. Use una instrucción de asignación estándar para asignar la matriz de origen a la matriz de destino.Use a standard assignment statement to assign the source array to the destination array. No siga ningún nombre de matriz entre paréntesis.Do not follow either array name with parentheses.

    Dim formArray() As System.Windows.Forms.Form
    Dim controlArray() As System.Windows.Forms.Control
    controlArray = formArray
    

Al asignar una matriz a otra, se aplican las siguientes reglas:When you assign one array to another, the following rules apply:

  • Rangos iguales.Equal Ranks. El rango (número de dimensiones) de la matriz de destino debe ser el mismo que el de la matriz de origen.The rank (number of dimensions) of the destination array must be the same as that of the source array.

    Siempre que los rangos de las dos matrices sean iguales, no es necesario que las dimensiones sean iguales.Provided the ranks of the two arrays are equal, the dimensions do not need to be equal. El número de elementos de una dimensión determinada puede cambiar durante la asignación.The number of elements in a given dimension can change during assignment.

  • Tipos de elemento.Element Types. Ambas matrices deben tener elementos de tipo de referencia o ambas matrices deben tener elementos de tipo de valor .Either both arrays must have reference type elements or both arrays must have value type elements. Para obtener más información, consulta Value Types and Reference Types.For more information, see Value Types and Reference Types.

    • Si ambas matrices tienen elementos de tipo de valor, los tipos de datos de los elementos deben ser exactamente iguales.If both arrays have value type elements, the element data types must be exactly the same. La única excepción a esto es que puede asignar una matriz de Enum elementos a una matriz del tipo base de ese Enum.The only exception to this is that you can assign an array of Enum elements to an array of the base type of that Enum.

    • Si ambas matrices tienen elementos de tipo de referencia, el tipo de elemento de origen debe derivar del tipo de elemento de destino.If both arrays have reference type elements, the source element type must derive from the destination element type. En este caso, las dos matrices tienen la misma relación de herencia que sus elementos.When this is the case, the two arrays have the same inheritance relationship as their elements. Esto se denomina covarianza de matriz.This is called array covariance.

El compilador notifica un error si se infringen las reglas anteriores, por ejemplo, si los tipos de datos no son compatibles o los rangos no son iguales.The compiler reports an error if the above rules are violated, for example if the data types are not compatible or the ranks are unequal. Puede Agregar control de errores al código para asegurarse de que las matrices son compatibles antes de intentar una asignación.You can add error handling to your code to make sure that the arrays are compatible before attempting an assignment. También puede usar la palabra clave del operador TryCast si desea evitar que se produzca una excepción.You can also use the TryCast Operator keyword if you want to avoid throwing an exception.

Vea tambiénSee also