Array.ConstrainedCopy(Array, Int32, Array, Int32, Int32) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
- sourceIndex
- Int32
Eine 32-Bit-Ganzzahl, die den Index im sourceArray
angibt, ab dem kopiert werden soll.
- destinationIndex
- Int32
Eine 32-Bit-Ganzzahl, die den Index im destinationArray
angibt, ab dem gespeichert werden soll.
- length
- Int32
Eine 32-Bit-Ganzzahl, die die Anzahl der zu kopierenden Elemente darstellt.
Ausnahmen
sourceArray
und destinationArray
sind von unterschiedlichem Rang.
Der sourceArray
-Typ entspricht weder dem destinationArray
-Typ, noch wird er von diesem abgeleitet.
Mindestens ein Element in sourceArray
kann nicht in den destinationArray
-Typ umgewandelt werden.
sourceIndex
ist kleiner als die untere Grenze der ersten Dimension von sourceArray
.
- oder -
destinationIndex
ist kleiner als die untere Grenze der ersten Dimension von destinationArray
.
- oder -
length
ist kleiner als Null.
length
ist größer als die Anzahl der Elemente vom sourceIndex
bis zum Ende des sourceArray
s.
- oder -
length
ist größer als die Anzahl der Elemente vom destinationIndex
bis zum Ende des destinationArray
s.
Hinweise
Die sourceArray
Parameter destinationArray
müssen dieselbe Anzahl von Dimensionen aufweisen. Der sourceArray
Typ muss mit dem destinationArray
Typ identisch sein oder vom Typ abgeleitet werden. Andernfalls wird ein ArrayTypeMismatchException Ausgelöst. ConstrainedCopy Im Gegensatz dazu Copyüberprüft die Kompatibilität der Arraytypen vor dem Ausführen eines Vorgangs.
Beim Kopieren zwischen mehrdimensionalen Arrays verhält sich das Array wie ein langes eindimensionales Array, wobei die Zeilen (oder Spalten) konzeptionell end-to-End gelegt werden. Wenn beispielsweise ein Array drei Zeilen (oder Spalten) mit vier Elementen enthält, würde das 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) kopieren. Um mit dem Kopieren aus dem zweiten Element der dritten Zeile (oder Spalte) zu beginnen, sourceIndex
muss die obere Grenze der ersten Zeile (oder Spalte) und die Länge der zweiten Zeile (oder Spalte) plus zwei sein.
Wenn sourceArray
und destinationArray
überlappen, verhält sich diese Methode so, als ob die ursprünglichen Werte sourceArray
an einem temporären Speicherort beibehalten wurden, bevor destinationArray
sie überschrieben werden.
[C++]
Diese Methode entspricht der Standardfunktion memmove
C/C++ und nicht memcpy
.
Die Arrays können Referenztyparrays oder Werttyparrays sein. destinationArray
Wenn sourceArray
beide Referenztyparrays vorhanden sind oder beide Arrays vom Typ Objectsind, wird eine flache Kopie ausgeführt. Eine flache Kopie eines Array Elements ist eine neue Array , die Verweise auf die gleichen Elemente wie das Original Arrayenthält. Die Elemente selbst oder etwas, auf das von den Elementen verwiesen wird, werden nicht kopiert. Im Gegensatz dazu kopiert eine tiefe Kopie der Array Elemente und alles direkt oder indirekt von den Elementen verwiesen.
Wenn diese Methode während des Kopierens eine Ausnahme ausgelöst hat, kann dies destinationArray
ConstrainedCopy daher in einem eingeschränkten Ausführungsbereich (Cer) verwendet werden.
Diese Methode ist ein O()-n
Vorgang, wo n
ist length
.