다음을 통해 공유


Array.ConstrainedCopy(Array, Int32, Array, Int32, Int32) 메서드

정의

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

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입니다.

sourceIndex
Int32

복사가 시작되는 sourceArray의 인덱스를 나타내는 32비트 정수입니다.

destinationArray
Array

데이터를 받는 Array입니다.

destinationIndex
Int32

저장이 시작되는 destinationArray의 인덱스를 나타내는 32비트 정수입니다.

length
Int32

복사할 요소의 개수를 나타내는 32비트 정수입니다.

예외

sourceArray이(가) null인 경우

또는

destinationArray이(가) null인 경우

sourceArraydestinationArray의 차수가 다릅니다.

sourceArray 형식은 동일하지 않으며 destinationArray 형식에서 파생되지 않습니다.

sourceArray의 하나 이상의 요소를 destinationArray의 형식으로 캐스팅할 수 없습니다.

sourceIndexsourceArray의 첫 번째 차원 하한값보다 작습니다.

또는

destinationIndexdestinationArray의 첫 번째 차원 하한값보다 작습니다.

또는

length가 0보다 작은 경우

lengthsourceIndex부터 sourceArray 끝까지의 요소 수보다 큽니다.

또는

lengthdestinationIndex부터 destinationArray 끝까지의 요소 수보다 큽니다.

설명

sourceArraydestinationArray 매개 변수의 차원 수는 같아야 합니다. 형식은 sourceArray 형식과 동일하거나 형식에서 destinationArray 파생되어야 합니다. 그렇지 않으면 throw ArrayTypeMismatchException 됩니다. 달리 Copy, ConstrainedCopy 작업을 수행하기 전에 배열 형식의 호환성을 확인합니다.

다차원 배열 간에 복사할 때 배열은 긴 1차원 배열처럼 동작합니다. 여기서 행(또는 열)은 개념적으로 엔드 투 엔드로 배치됩니다. 예를 들어 배열에 각각 4개의 요소가 있는 3개의 행(또는 열)이 있는 경우 배열의 시작 부분에서 6개의 요소를 복사하면 첫 번째 행(또는 열)의 4개 요소와 두 번째 행(또는 열)의 처음 두 요소가 모두 복사됩니다. 세 번째 행(또는 열)의 두 번째 요소에서 복사를 시작하려면 첫 번째 행(또는 열) sourceIndex 의 상한과 두 번째 행(또는 열)의 길이와 2를 더한 값이어야 합니다.

destinationArray 겹치는 경우 sourceArray 이 메서드는 원래 값을 sourceArray 덮어쓰기 전에 destinationArray 임시 위치에 유지된 것처럼 동작합니다.

[C++]

이 메서드는 표준 C/C++ 함수 memmove와 동일하며 , 그렇지 않습니다 memcpy.

배열은 참조 형식 배열 또는 값 형식 배열일 수 있습니다. 참조 형식 배열이거나 destinationArray 둘 다 형식Object의 배열인 경우 sourceArray 단순 복사가 수행됩니다. 단순 복사본 Array 은 원본Array과 동일한 요소에 대한 참조를 포함하는 새 Array 복사본입니다. 요소 자체 또는 요소에서 참조하는 모든 항목은 복사되지 않습니다. 반면, 요소의 Array 전체 복사본은 요소와 요소에서 직접 또는 간접적으로 참조하는 모든 항목을 복사합니다.

이 메서드가 복사하는 동안 예외를 throw하는 destinationArray 경우 변경되지 않은 ConstrainedCopy 상태로 유지되므로 제한된 실행 영역(Cer)에서 사용할 수 있습니다.

이 메서드는 O (n) 작업, 여기서 nlength합니다.

적용 대상

추가 정보