Array.ConstrainedCopy(Array, Int32, Array, Int32, Int32) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
- sourceIndex
- Int32
Entero de 32 bits que representa el índice en sourceArray el que comienza la copia.
- destinationIndex
- Int32
Entero de 32 bits que representa el índice en el destinationArray que comienza el almacenamiento.
- length
- Int32
Entero de 32 bits que representa el número de elementos que se van a copiar.
Excepciones
sourceArray y destinationArray tienen diferentes rangos.
El sourceArray tipo no es el mismo que ni se deriva del destinationArray tipo .
Al menos un elemento de sourceArray no se puede convertir al tipo de destinationArray.
sourceIndex es menor que el límite inferior de la primera dimensión de sourceArray.
O bien
destinationIndex es menor que el límite inferior de la primera dimensión de destinationArray.
O bien
length es menor que cero.
length es mayor que el número de elementos desde sourceIndex hasta el final de sourceArray.
O bien
length es mayor que el número de elementos desde destinationIndex hasta el final de destinationArray.
Comentarios
Los sourceArray parámetros y destinationArray deben tener el mismo número de dimensiones. El sourceArray tipo debe ser el mismo que o derivado del destinationArray tipo; de lo contrario, se produce una ArrayTypeMismatchException excepción . A diferencia Copyde , ConstrainedCopy comprueba la compatibilidad de los tipos de matriz antes de realizar cualquier operación.
Al copiar entre matrices multidimensionales, la matriz se comporta como una matriz unidimensional larga, donde las filas (o columnas) se colocan conceptualmente de un extremo a otro. Por ejemplo, si una matriz tiene tres filas (o columnas) con cuatro elementos cada uno, copiar seis elementos desde el principio de la matriz copiaría los cuatro elementos de la primera fila (o columna) y los dos primeros elementos de la segunda fila (o columna). Para empezar a copiar desde el segundo elemento de la tercera fila (o columna), sourceIndex debe ser el límite superior de la primera fila (o columna) más la longitud de la segunda fila (o columna) más dos.
Si sourceArray y destinationArray se superponen, este método se comporta como si los valores originales de se conservaran en una ubicación temporal antes sourceArray de destinationArray sobrescribirse.
[C++]
Este método es equivalente a la función memmoveestándar de C/C++ , no memcpy.
Las matrices pueden ser matrices de tipo de referencia o tipo de valor. Si sourceArray y destinationArray son matrices de tipo de referencia o son matrices de tipo Object, se realiza una copia superficial. Una copia superficial de es Array una nueva Array que contiene referencias a los mismos elementos que el original Array. Los propios elementos o cualquier elemento al que hacen referencia los elementos no se copian. En cambio, una copia profunda de un Array copia los elementos y todo directamente o indirectamente al que hacen referencia los elementos.
Si este método produce una excepción durante la copia, permanece destinationArray sin cambios; por lo tanto, ConstrainedCopy se puede usar dentro de una región de ejecución restringida (Cer).
Este método es una operación $O(n)$, donde $n$ es length.