Array.ConstrainedCopy(Array, Int32, Array, Int32, Int32) Método

Definição

Copia um intervalo de elementos de um Array índice de origem especificado e os cola em outro Array começando no índice de destino especificado. Garante que todas as alterações serão desfeitas se a cópia não tiver êxito completamente.

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

O Array que contém os dados a serem copiados.

sourceIndex
Int32

Um inteiro de 32 bits que representa o índice no sourceArray qual a cópia começa.

destinationArray
Array

O Array que recebe os dados.

destinationIndex
Int32

Um inteiro de 32 bits que representa o índice no destinationArray qual o armazenamento começa.

length
Int32

Um inteiro de 32 bits que representa o número de elementos a serem copiados.

Exceções

sourceArray é null.

- ou -

destinationArray é null.

sourceArray e destinationArray ter diferentes classificações.

O sourceArray tipo não é igual nem derivado do destinationArray tipo.

Pelo menos um elemento não sourceArray pode ser convertido no tipo de destinationArray.

sourceIndex é menor que o limite inferior da primeira dimensão de sourceArray.

- ou -

destinationIndex é menor que o limite inferior da primeira dimensão de destinationArray.

- ou -

length é menor que zero.

length é maior que o número de elementos de sourceIndex até o final de sourceArray.

- ou -

length é maior que o número de elementos de destinationIndex até o final de destinationArray.

Comentários

O sourceArray e destinationArray os parâmetros devem ter o mesmo número de dimensões. O sourceArray tipo deve ser igual ou derivado do destinationArray tipo; caso contrário, um ArrayTypeMismatchException é gerado. Ao contrário Copyde , ConstrainedCopy verifica a compatibilidade dos tipos de matriz antes de executar qualquer operação.

Ao copiar entre matrizes multidimensionais, a matriz se comporta como uma matriz unidimensional longa, em que as linhas (ou colunas) são conceitualmente colocadas de ponta a ponta. Por exemplo, se uma matriz tiver três linhas (ou colunas) com quatro elementos cada, copiar seis elementos do início da matriz copiará todos os quatro elementos da primeira linha (ou coluna) e os dois primeiros elementos da segunda linha (ou coluna). Para começar a copiar do segundo elemento da terceira linha (ou coluna), sourceIndex deve ser o limite superior da primeira linha (ou coluna) mais o comprimento da segunda linha (ou coluna) mais duas.

Se sourceArray e destinationArray sobreposição, esse método se comporta como se os valores originais de sourceArray foram preservados em um local temporário antes destinationArray de ser substituído.

[C++]

Esse método é equivalente à função memmoveC/C++ padrão, não memcpy.

As matrizes podem ser matrizes de tipo de referência ou de tipo de valor. Se sourceArray e destinationArray forem matrizes de tipo de referência ou ambas as matrizes de tipo Object, uma cópia superficial será executada. Uma cópia superficial de um Array é uma nova Array que contém referências aos mesmos elementos que o original Array. Os próprios elementos ou qualquer coisa referenciada pelos elementos não são copiados. Por outro lado, uma cópia profunda de um Array elemento copia os elementos e tudo referenciado direta ou indiretamente pelos elementos.

Se esse método gerar uma exceção durante a cópia, ele destinationArray permanecerá inalterado; portanto, ConstrainedCopy poderá ser usado dentro de uma região de execução restrita (Cer).

Esse método é uma operação $O(n)$ em que $n$ é length.

Aplica-se a

Confira também