Array.ConstrainedCopy(Array, Int32, Array, Int32, Int32) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
Um inteiro de 32 bits que representa o índice no sourceArray qual a cópia começa.
- 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 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.