Array.ConstrainedCopy(Array, Int32, Array, Int32, Int32) Methode

Definition

Kopiert einen beim angegebenen Quellindex beginnenden Elementbereich aus einem Array und fügt ihn ab dem angegebenen Zielindex in ein anderes Array ein.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. Stellt sicher, dass alle Änderungen rückgängig gemacht werden, wenn der Kopiervorgang nicht vollständig abgeschlossen wurde.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)

Parameter

sourceArray
Array

Das Array, das die zu kopierenden Daten enthält.The Array that contains the data to copy.

sourceIndex
Int32

Eine 32-Bit-Ganzzahl, die den Index im sourceArray angibt, ab dem kopiert werden soll.A 32-bit integer that represents the index in the sourceArray at which copying begins.

destinationArray
Array

Das Array, das die Daten empfängt.The Array that receives the data.

destinationIndex
Int32

Eine 32-Bit-Ganzzahl, die den Index im destinationArray angibt, ab dem gespeichert werden soll.A 32-bit integer that represents the index in the destinationArray at which storing begins.

length
Int32

Eine 32-Bit-Ganzzahl, die die Anzahl der zu kopierenden Elemente darstellt.A 32-bit integer that represents the number of elements to copy.

Ausnahmen

sourceArray ist nullsourceArray is null.

- oder --or- destinationArray ist nulldestinationArray is null.

sourceArray und destinationArray sind von unterschiedlichem Rang.sourceArray and destinationArray have different ranks.

Der sourceArray-Typ entspricht weder dem destinationArray-Typ, noch wird er von diesem abgeleitet.The sourceArray type is neither the same as nor derived from the destinationArray type.

Mindestens ein Element im sourceArray kann nicht in den Typ des destinationArrays umgewandelt werden.At least one element in sourceArray cannot be cast to the type of destinationArray.

sourceIndex ist kleiner als die untere Grenze der ersten Dimension von sourceArray.sourceIndex is less than the lower bound of the first dimension of sourceArray.

- oder --or- destinationIndex ist kleiner als die untere Grenze der ersten Dimension von destinationArray.destinationIndex is less than the lower bound of the first dimension of destinationArray.

- oder --or- length ist kleiner als 0 (null).length is less than zero.

length ist größer als die Anzahl der Elemente vom sourceIndex bis zum Ende des sourceArrays.length is greater than the number of elements from sourceIndex to the end of sourceArray.

- oder --or- length ist größer als die Anzahl der Elemente vom destinationIndex bis zum Ende des destinationArrays.length is greater than the number of elements from destinationIndex to the end of destinationArray.

Hinweise

Die Parameter "sourceArray" und "destinationArray" müssen die gleiche Anzahl von Dimensionen aufweisen.The sourceArray and destinationArray parameters must have the same number of dimensions. Der sourceArray Typ muss mit dem Typ übereinstimmen oder vom destinationArray Typ abgeleitet werden. Andernfalls wird eine ArrayTypeMismatchException ausgelöst.The sourceArray type must be the same as or derived from the destinationArray type; otherwise, an ArrayTypeMismatchException is thrown. Im Gegensatz zu Copyüberprüft ConstrainedCopy die Kompatibilität der Array Typen, bevor ein Vorgang durchgeführt wird.Unlike Copy, ConstrainedCopy verifies the compatibility of the array types before performing any operation.

Beim Kopieren zwischen mehrdimensionalen Arrays verhält sich das Array wie ein langes eindimensionales Array, bei dem die Zeilen (oder Spalten) vom Ende bis zum Ende verankert werden.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. Wenn ein Array z. b. über drei Zeilen (oder Spalten) mit jeweils vier Elementen verfügt, werden beim Kopieren von sechs Elementen vom Anfang des Arrays alle vier Elemente der ersten Zeile (oder Spalte) und die ersten beiden Elemente der zweiten Zeile (oder Spalte) kopiert.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). Um mit dem Kopieren vom zweiten Element der dritten Zeile (oder Spalte) zu beginnen, muss sourceIndex die obere Grenze der ersten Zeile (oder Spalte) plus der Länge der zweiten Zeile (oder Spalte) plus 2 sein.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.

Wenn sich sourceArray und destinationArray überlappen, verhält sich diese Methode so, als ob die ursprünglichen Werte von sourceArray an einem temporären Speicherort beibehalten wurden, bevor destinationArray überschrieben wurde.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++]

Diese Methode entspricht der standardmäßigen C/FunctionC++ -memmove, nicht memcpy.This method is equivalent to the standard C/C++ function memmove, not memcpy.

Arrays können aus Verweistyp Arrays oder Werttyp Arrays bestehen.The arrays can be reference-type arrays or value-type arrays. Wenn sourceArray und destinationArray beide als Verweistyp Arrays oder beide Arrays vom Typ Objectsind, wird eine flache Kopie ausgeführt.If sourceArray and destinationArray are both reference-type arrays or are both arrays of type Object, a shallow copy is performed. Eine flache Kopie eines Array ist ein neues Array, das Verweise auf dieselben Elemente wie die ursprüngliche Arrayenthält.A shallow copy of an Array is a new Array containing references to the same elements as the original Array. Die Elemente selbst oder alle Elemente, auf die von den Elementen verwiesen wird, werden nicht kopiert.The elements themselves or anything referenced by the elements are not copied. Im Gegensatz dazu kopiert eine tiefe Kopie einer Array die Elemente und alles, auf das von den Elementen direkt oder indirekt verwiesen wird.In contrast, a deep copy of an Array copies the elements and everything directly or indirectly referenced by the elements.

Wenn diese Methode eine Ausnahme beim Kopieren auslöst, bleibt die destinationArray unverändert. Daher können ConstrainedCopy in einem eingeschränkten Ausführungs Bereich (Cer) verwendet werden.If this method throws an exception while copying, the destinationArray remains unchanged; therefore, ConstrainedCopy can be used within a constrained execution region (Cer).

Bei dieser Methode handelt es sich um einen O (n)-Vorgang, bei dem n lengthist.This method is an O(n) operation, where n is length.

Gilt für:

Siehe auch