Array.ConstrainedCopy(Array, Int32, Array, Int32, Int32) Array.ConstrainedCopy(Array, Int32, Array, Int32, Int32) Array.ConstrainedCopy(Array, Int32, Array, Int32, Int32) Array.ConstrainedCopy(Array, Int32, Array, Int32, Int32) Method

Definición

Copia un intervalo de elementos de un objeto Array a partir del índice de origen especificado y los pega en otro objeto Array a partir del índice de destino especificado.Copies a range of elements from an Array starting at the specified source index and pastes them to another Array starting at the specified destination index. Garantiza que se deshacen todos los cambios si la copia no se realiza de forma totalmente correcta.Guarantees that all changes are undone if the copy does not succeed completely.

public:
 static void ConstrainedCopy(Array ^ sourceArray, int sourceIndex, Array ^ destinationArray, int destinationIndex, int length);
public static void ConstrainedCopy (Array sourceArray, int sourceIndex, Array destinationArray, int destinationIndex, int length);
static member ConstrainedCopy : Array * int * Array * int * int -> unit
Public Shared Sub ConstrainedCopy (sourceArray As Array, sourceIndex As Integer, destinationArray As Array, destinationIndex As Integer, length As Integer)

Parámetros

sourceArray
Array Array Array Array

Array que contiene los datos que se van a copiar.The Array that contains the data to copy.

sourceIndex
Int32 Int32 Int32 Int32

Entero de 32 bits que representa el índice de la sourceArray en la que se empieza a copiar.A 32-bit integer that represents the index in the sourceArray at which copying begins.

destinationArray
Array Array Array Array

Array que recibe los datos.The Array that receives the data.

destinationIndex
Int32 Int32 Int32 Int32

Entero de 32 bits que representa el índice de la destinationArray en la que se empieza a almacenar.A 32-bit integer that represents the index in the destinationArray at which storing begins.

length
Int32 Int32 Int32 Int32

Entero de 32 bits que representa el número de elementos que se van a copiar.A 32-bit integer that represents the number of elements to copy.

Excepciones

El valor de sourceArray es null.sourceArray is null.

-o bien--or- El valor de destinationArray es null.destinationArray is null.

sourceArray y destinationArray tienen clasificaciones diferentes.sourceArray and destinationArray have different ranks.

El tipo sourceArray no es el mismo ni se deriva del tipo destinationArray.The sourceArray type is neither the same as nor derived from the destinationArray type.

Al menos un elemento de sourceArray no se puede convertir al tipo de destinationArray.At least one element in sourceArray cannot be cast to the type of destinationArray.

sourceIndex es menor que el límite inferior de la primera dimensión de sourceArray.sourceIndex is less than the lower bound of the first dimension of sourceArray.

-o bien--or- destinationIndex es menor que el límite inferior de la primera dimensión de destinationArray.destinationIndex is less than the lower bound of the first dimension of destinationArray.

-o bien--or- length es menor que cero.length is less than zero.

length es mayor que el número de elementos desde sourceIndex hasta el final de sourceArray.length is greater than the number of elements from sourceIndex to the end of sourceArray.

-o bien--or- length es mayor que el número de elementos desde destinationIndex hasta el final de destinationArray.length is greater than the number of elements from destinationIndex to the end of destinationArray.

Comentarios

El sourceArray y destinationArray parámetros deben tener el mismo número de dimensiones.The sourceArray and destinationArray parameters must have the same number of dimensions. El sourceArray tipo debe ser igual o derivado de la destinationArray tipo; en caso contrario, un ArrayTypeMismatchException se produce.The sourceArray type must be the same as or derived from the destinationArray type; otherwise, an ArrayTypeMismatchException is thrown. A diferencia de Copy, ConstrainedCopy comprueba la compatibilidad de los tipos de matriz antes de realizar cualquier operación.Unlike Copy, ConstrainedCopy verifies the compatibility of the array types before performing any operation.

Al copiar datos entre las matrices multidimensionales, la matriz se comporta como una matriz unidimensional larga, donde las filas (o columnas) se distribuyen conceptualmente-to-end.When copying between multidimensional arrays, the array behaves like a long one-dimensional array, where the rows (or columns) are conceptually laid end-to-end. Por ejemplo, si una matriz tiene tres filas (o columnas) con cuatro elementos cada uno, copian seis elementos desde el principio de la matriz copiaría todos los cuatro elementos de la primera fila (o columna) y los dos primeros elementos de la segunda fila (o columna).For example, if an array has three rows (or columns) with four elements each, copying six elements from the beginning of the array would copy all four elements of the first row (or column) and the first two elements of the second row (or column). Para empezar a copiar en el segundo elemento de la fila de terceros (o columna), sourceIndex debe ser el límite superior de la primera fila (o columna) y la longitud de la segunda fila (o columna) más dos.To start copying from the second element of the third row (or column), sourceIndex must be the upper bound of the first row (or column) plus the length of the second row (or column) plus two.

Si sourceArray y destinationArray se superponen, este método se comporta como si los valores originales de sourceArray se conservaron en una ubicación temporal antes de destinationArray se sobrescribe.If sourceArray and destinationArray overlap, this method behaves as if the original values of sourceArray were preserved in a temporary location before destinationArray is overwritten.

[C++][C++]

Este método es equivalente a la función de C o C++ estándar memmove, no memcpy.This method is equivalent to the standard C/C++ function memmove, not memcpy.

Las matrices pueden ser matrices de tipo de referencia o matrices de tipo de valor.The arrays can be reference-type arrays or value-type arrays. Si sourceArray y destinationArray son ambas matrices de tipo de referencia o ambas matrices de tipo Object, se realiza una copia superficial.If sourceArray and destinationArray are both reference-type arrays or are both arrays of type Object, a shallow copy is performed. Una copia superficial de un Array es una nueva Array que contienen referencias a los mismos elementos que el original Array.A shallow copy of an Array is a new Array containing references to the same elements as the original Array. Los elementos no se copian a sí mismos o cualquier cosa que hace referencia a los elementos.The elements themselves or anything referenced by the elements are not copied. En cambio, una copia profunda de un Array copia los elementos y todo lo que hace referencia directa o indirectamente por los elementos.In contrast, a deep copy of an Array copies the elements and everything directly or indirectly referenced by the elements.

Si este método produce una excepción durante la copia, la destinationArray permanece sin cambios; por lo tanto, ConstrainedCopy puede utilizarse dentro de una región de ejecución restringida (Cer).If this method throws an exception while copying, the destinationArray remains unchanged; therefore, ConstrainedCopy can be used within a constrained execution region (Cer).

Este método es O (n) operación, donde n es length.This method is an O(n) operation, where n is length.

Se aplica a

Consulte también: