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

Definition

Zkopíruje rozsah prvků z Array počínaje zadaným indexem zdroje a vloží je do jiného Array počínaje zadaným indexem cíle.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. Garantuje, že všechny změny jsou vráceny, pokud kopie není zcela úspěšná.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)

Parameters

sourceArray
Array

Array obsahující data ke zkopírování.The Array that contains the data to copy.

sourceIndex
Int32

32 celé číslo, které představuje index v sourceArray, ve kterém začíná kopírování.A 32-bit integer that represents the index in the sourceArray at which copying begins.

destinationArray
Array

Array, který přijímá data.The Array that receives the data.

destinationIndex
Int32

32 celé číslo, které představuje index v destinationArray, v němž začíná ukládání.A 32-bit integer that represents the index in the destinationArray at which storing begins.

length
Int32

32 celé číslo, které představuje počet prvků, které mají být zkopírovány.A 32-bit integer that represents the number of elements to copy.

Exceptions

sourceArray je null.sourceArray is null.

-nebo--or- destinationArray je null.destinationArray is null.

sourceArray a destinationArray mají odlišné pořadí.sourceArray and destinationArray have different ranks.

Typ sourceArray není stejný ani odvozený z destinationArray typu.The sourceArray type is neither the same as nor derived from the destinationArray type.

Nejméně jeden prvek v sourceArray nelze přetypovat na typ destinationArray.At least one element in sourceArray cannot be cast to the type of destinationArray.

sourceIndex je menší než dolní mez prvního rozměru sourceArray.sourceIndex is less than the lower bound of the first dimension of sourceArray.

-nebo--or- destinationIndex je menší než dolní mez prvního rozměru destinationArray.destinationIndex is less than the lower bound of the first dimension of destinationArray.

-nebo--or- Hodnota length je menší než nula.length is less than zero.

length je větší než počet prvků od sourceIndex na konec sourceArray.length is greater than the number of elements from sourceIndex to the end of sourceArray.

-nebo--or- length je větší než počet prvků od destinationIndex na konec destinationArray.length is greater than the number of elements from destinationIndex to the end of destinationArray.

Remarks

Parametry sourceArray a destinationArray musí mít stejný počet rozměrů.The sourceArray and destinationArray parameters must have the same number of dimensions. Typ sourceArray musí být stejný jako nebo odvozený od destinationArray typu; v opačném případě je vyvolána ArrayTypeMismatchException.The sourceArray type must be the same as or derived from the destinationArray type; otherwise, an ArrayTypeMismatchException is thrown. Na rozdíl od CopyConstrainedCopy ověřuje kompatibilitu typů polí před provedením jakékoli operace.Unlike Copy, ConstrainedCopy verifies the compatibility of the array types before performing any operation.

Při kopírování mezi multidimenzionálními poli se pole chová jako dlouhé jednorozměrné pole, kde jsou řádky (nebo sloupce) koncepčně rozloženy na konec.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. Obsahuje-li pole například tři řádky (nebo sloupce) po čtyřech prvcích, při kopírování šesti prvků od začátku pole budou zkopírovány všechny čtyři prvky z prvního řádku (nebo sloupce) a první dva prvky z druhého řádku (nebo sloupce).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). Chcete-li začít kopírovat z druhého prvku třetího řádku (nebo sloupce), sourceIndex musí být horní mezí prvního řádku (nebo sloupce) a také délka druhého řádku (nebo sloupce) a dvou.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.

Pokud se sourceArray a destinationArray překrývají, tato metoda se chová, jako by původní hodnoty sourceArray byly zachovány v dočasném umístění před přepsáním destinationArray.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++]

Tato metoda je ekvivalentní standardnímu memmoveC/C++ Function, nikoli memcpy.This method is equivalent to the standard C/C++ function memmove, not memcpy.

Pole mohou být odkazového nebo hodnotového typu.The arrays can be reference-type arrays or value-type arrays. Pokud sourceArray a destinationArray jsou obě pole typu odkazu nebo se jedná o pole typu Object, provede se kopie bez podstruktury.If sourceArray and destinationArray are both reference-type arrays or are both arrays of type Object, a shallow copy is performed. Kopie Array bez podstruktury je nová Array obsahující odkazy na stejné prvky jako původní Array.A shallow copy of an Array is a new Array containing references to the same elements as the original Array. Nekopírují se samotné prvky ani objekty, na které odkazují.The elements themselves or anything referenced by the elements are not copied. Naproti tomu hluboká kopie Array kopíruje prvky a vše přímo nebo nepřímo odkazované prvky.In contrast, a deep copy of an Array copies the elements and everything directly or indirectly referenced by the elements.

Pokud tato metoda vyvolá výjimku při kopírování, destinationArray zůstane beze změny; Proto lze ConstrainedCopy použít v oblasti omezeného provádění (Cer).If this method throws an exception while copying, the destinationArray remains unchanged; therefore, ConstrainedCopy can be used within a constrained execution region (Cer).

Tato metoda je operace O (n), kde n je length.This method is an O(n) operation, where n is length.

Applies to

See also