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

정의

Array의 요소 범위를 지정한 소스 인덱스부터 복사하여 지정된 대상 인덱스부터 시작하는 다른 Array에 붙여 넣습니다.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. 복사가 완료되지 않으면 모든 변경 내용이 취소되도록 합니다.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)

매개 변수

sourceArray
Array Array Array Array

복사할 데이터가 포함된 Array입니다.The Array that contains the data to copy.

sourceIndex
Int32 Int32 Int32 Int32

복사가 시작되는 sourceArray의 인덱스를 나타내는 32비트 정수입니다.A 32-bit integer that represents the index in the sourceArray at which copying begins.

destinationArray
Array Array Array Array

데이터를 받는 Array입니다.The Array that receives the data.

destinationIndex
Int32 Int32 Int32 Int32

저장이 시작되는 destinationArray의 인덱스를 나타내는 32비트 정수입니다.A 32-bit integer that represents the index in the destinationArray at which storing begins.

length
Int32 Int32 Int32 Int32

복사할 요소의 개수를 나타내는 32비트 정수입니다.A 32-bit integer that represents the number of elements to copy.

예외

sourceArraynull입니다.sourceArray is null.

또는-or- destinationArraynull입니다.destinationArray is null.

sourceArraydestinationArray의 차수가 다릅니다.sourceArray and destinationArray have different ranks.

sourceArray 형식은 동일하지 않으며 destinationArray 형식에서 파생되지 않습니다.The sourceArray type is neither the same as nor derived from the destinationArray type.

sourceArray의 하나 이상의 요소를 destinationArray의 형식으로 캐스팅할 수 없습니다.At least one element in sourceArray cannot be cast to the type of destinationArray.

sourceIndexsourceArray의 첫 번째 차원 하한값보다 작습니다.sourceIndex is less than the lower bound of the first dimension of sourceArray.

또는-or- destinationIndexdestinationArray의 첫 번째 차원 하한값보다 작습니다.destinationIndex is less than the lower bound of the first dimension of destinationArray.

또는-or- length가 0보다 작은 경우length is less than zero.

lengthsourceIndex부터 sourceArray 끝까지의 요소 수보다 큽니다.length is greater than the number of elements from sourceIndex to the end of sourceArray.

또는-or- lengthdestinationIndex부터 destinationArray 끝까지의 요소 수보다 큽니다.length is greater than the number of elements from destinationIndex to the end of destinationArray.

설명

합니다 sourceArraydestinationArray 매개 변수 같은 차원 수 있어야 합니다.The sourceArray and destinationArray parameters must have the same number of dimensions. sourceArray 형식은 동일 하거나에서 파생 합니다 destinationArray 형식이 고, 그렇지는 ArrayTypeMismatchException throw 됩니다.The sourceArray type must be the same as or derived from the destinationArray type; otherwise, an ArrayTypeMismatchException is thrown. 와 달리 Copy, ConstrainedCopy 모든 작업을 수행 하기 전에 배열 형식의 호환 여부를 확인 합니다.Unlike Copy, ConstrainedCopy verifies the compatibility of the array types before performing any operation.

다차원 배열 간에 복사 하는 경우 배열 처럼 동작 하며 긴 1 차원 배열에 행 (또는 열)은 개념적으로 놓여집니다 엔드-투-엔드.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. 예를 들어, 배열에 세 개의 행 (또는 열) 4 개 요소를 사용 하 여 각각 복사 6 개의 요소가 있으면 배열의 시작 부분에서 첫 번째 행 (또는 열)의 모든 4 개의 요소가 및 두 번째 행 (또는 열)의 처음 두 요소 복사 됩니다.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). 세 번째 행 (또는 열의), 두 번째 요소에서 복사를 시작할 sourceIndex 첫 번째 행 (또는 열의) 상한 값 2를 더한의 두 번째 행 (또는 열의) 길이 더한 값 이어야 합니다.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.

경우 sourceArray 하 고 destinationArray 겹치는 경우이 메서드 동작 처럼의 원래 값 sourceArray 하기 전에 임시 위치에 유지 된 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++]

이 메서드는 표준 C + + 함수에 해당 memmove이 아니라 memcpy합니다.This method is equivalent to the standard C/C++ function memmove, not memcpy.

배열은 참조 형식 배열 또는 값 형식 배열 수 있습니다.The arrays can be reference-type arrays or value-type arrays. 경우 sourceArray 하 고 destinationArray 는 모두 참조 형식 배열 또는 형식의 배열은 모두 Object, 단순 복사가 수행 됩니다.If sourceArray and destinationArray are both reference-type arrays or are both arrays of type Object, a shallow copy is performed. 단순 복사본을 Array 새로운 Array 원본과 동일한 요소에 대 한 참조를 포함 하 Array합니다.A shallow copy of an Array is a new Array containing references to the same elements as the original Array. 요소는 요소에서 참조 하는 대상은 복사 되지 않습니다.The elements themselves or anything referenced by the elements are not copied. 전체 복사본 하는 반면,는 Array 요소 및 요소에 의해 직접 또는 간접적으로 참조 된 모든 항목을 복사 합니다.In contrast, a deep copy of an Array copies the elements and everything directly or indirectly referenced by the elements.

이 메서드를 복사 하는 동안 예외가 발생 하는 경우는 destinationArray 그대로; 따라서 ConstrainedCopy 제약이 있는 실행 영역 내에서 사용할 수 있습니다 (Cer).If this method throws an exception while copying, the destinationArray remains unchanged; therefore, ConstrainedCopy can be used within a constrained execution region (Cer).

이 메서드는 O (n) 작업, 여기서 nlength합니다.This method is an O(n) operation, where n is length.

적용 대상

추가 정보