Array.ConstrainedCopy(Array, Int32, Array, Int32, Int32) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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 em sourceArray onde a cópia começa.
- destinationIndex
- Int32
Um inteiro de 32 bits que representa o índice em destinationArray onde começa o armazenamento.
- length
- Int32
Um inteiro de 32 bits que representa o número de elementos a copiar.
Exceções
sourceArray e destinationArray têm patentes diferentes.
O sourceArray tipo não é o mesmo nem derivado do destinationArray tipo.
Pelo menos um elemento em sourceArray não pode ser fundido para o 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 é inferior a zero.
length é maior do que o número de elementos de sourceIndex até ao fim de sourceArray.
-ou-
length é maior do que o número de elementos de destinationIndex até ao fim de destinationArray.
Observações
Os sourceArray parâmetros e destinationArray 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 é lançado. Ao contrário de , ConstrainedCopy verifica a compatibilidade dos tipos de array antes de Copyrealizar qualquer operação.
Ao copiar entre arrays multidimensionais, o array comporta-se como um array longo unidimensional, onde as linhas (ou colunas) são conceitualmente dispostas ponta a ponta. Por exemplo, se um array tiver três linhas (ou colunas) com quatro elementos cada, copiar seis elementos do início do array copiaria os quatro elementos da primeira linha (ou coluna) e os dois primeiros elementos da segunda linha (ou coluna). Para começar a copiar a partir do segundo elemento da terceira linha (ou coluna), sourceIndex deve haver o limite superior da primeira linha (ou coluna) mais o comprimento da segunda linha (ou coluna) mais dois.
Se sourceArray e destinationArray se sobrepõem, este método comporta-se como se os valores originais de sourceArray tivessem sido preservados numa localização temporária antes destinationArray fosse sobrescrevido.
[C++]
Este método é equivalente à função memmovepadrão C/C++ , não memcpy.
Os arrays podem ser de tipo referência ou de tipo valor. Se sourceArray e destinationArray forem ambos arrays de tipo de referência ou ambos forem arrays do tipo Object, realiza-se uma cópia superficial. Uma cópia superficial de an Array é uma nova Array que contém referências aos mesmos elementos do original Array. Os próprios elementos ou qualquer coisa referenciada pelos elementos não são copiados. Em contraste, uma cópia profunda de um Array copia os elementos e tudo o que é referido direta ou indiretamente pelos elementos.
Se este método lançar uma exceção durante a cópia, a destinationArray exceção permanece inalterada; portanto, ConstrainedCopy pode ser usado dentro de uma região de execução restrita (Cer).
Este método é uma operação $O(n)$, onde $n$ é length.