(0) exportieren Drucken
Alle erweitern

Array.ConstrainedCopy-Methode

Aktualisiert: November 2007

Kopiert einen beim angegebenen Quellindex beginnenden Elementbereich eines Array und fügt ihn ab dem angegebenen Zielindex in ein anderes Array ein. Stellt sicher, dass alle Änderungen rückgängig gemacht werden, wenn der Kopiervorgang nicht erfolgreich durchgeführt wird.

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)

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
)
public static function ConstrainedCopy(
	sourceArray : Array, 
	sourceIndex : int, 
	destinationArray : Array, 
	destinationIndex : int, 
	length : int
)

Parameter

sourceArray
Typ: System.Array
Das Array, das die zu kopierenden Daten enthält.
sourceIndex
Typ: System.Int32
Eine 32-Bit-Ganzzahl, die den Index im sourceArray angibt, ab dem kopiert werden soll.
destinationArray
Typ: System.Array
Das Array, das die Daten empfängt.
destinationIndex
Typ: System.Int32
Eine 32-Bit-Ganzzahl, die den Index im destinationArray angibt, ab dem gespeichert werden soll.
length
Typ: System.Int32
Eine 32-Bit-Ganzzahl, die die Anzahl der zu kopierenden Elemente darstellt.

AusnahmeBedingung
ArgumentNullException

sourceArray ist null.

- oder -

destinationArray ist null.

RankException

sourceArray und destinationArray haben verschiedene Ränge.

ArrayTypeMismatchException

Der sourceArray-Typ ist nicht gleich dem destinationArray-Typ und nicht von diesem abgeleitet.

InvalidCastException

Mindestens ein Element von sourceArray kann nicht in den Typ von destinationArray umgewandelt werden.

ArgumentOutOfRangeException

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 0.

ArgumentException

length ist größer als die Anzahl der Elemente von sourceIndex bis zum Ende von sourceArray.

- oder -

length ist größer als die Anzahl der Elemente von destinationIndex bis zum Ende von destinationArray.

Der sourceArray-Parameter und der destinationArray-Parameter müssen die gleiche Anzahl von Dimensionen aufweisen. Der sourceArray-Typ muss gleich dem destinationArray-Typ sein oder von diesem abgeleitet sein. Andernfalls wird eine ArrayTypeMismatchException ausgelöst. Im Gegensatz zu Copy überprüft ConstrainedCopy die Kompatibilität der Arraytypen vor dem Ausführen aller Operationen.

Beim Kopieren von mehrdimensionalen Arrays verhält sich das Array wie ein langes eindimensionales Array, dessen Zeilen (oder Spalten) hintereinander angeordnet sind. Wenn ein Array z. B. aus drei Zeilen (oder Spalten) mit je 4 Elementen besteht, werden beim Kopieren von sechs Elementen vom Anfang des Arrays alle vier Elemente der ersten Zeile (Spalte) und die ersten zwei Elemente der zweiten Zeile (Spalte) kopiert. Wenn beim zweiten Element der dritten Zeile (oder Spalte) mit dem Kopieren begonnen werden soll, muss sourceIndex gleich der oberen Grenze der ersten Zeile (Spalte) plus Länge der zweiten Zeile (Spalte) plus 2 sein.

Wenn sich sourceArray und destinationArray überlappen, verhält sich diese Methode so, als ob die ursprünglichen Werte von sourceArray vor dem Überschreiben von destinationArray an einem temporären Speicherort beibehalten werden.

cpp#

Diese Methode entspricht der C/C++-Standardfunktion memmove, aber nicht memcpy.

Die Arrays können Referenztyparrays oder Werttyparrays sein. Wenn sourceArray und destinationArray beide Verweistyparrays oder Arrays vom Typ Object sind, wird eine flache Kopie erstellt. Einer flache Kopie eines Array ist ein neues Array, das Verweise auf dieselben Elemente wie das ursprüngliche Array enthält. Die eigentlichen Elemente sowie Elemente, auf die ggf. verwiesen wird, werden nicht kopiert. Im Gegensatz dazu werden bei einer tiefen Kopie eines Array die Elemente sowie alle untergeordneten Elemente kopiert, auf die direkt oder indirekt verwiesen wird.

Wenn diese Methode während des Kopiervorgangs eine Ausnahme auslöst, bleibt destinationArray unveränderten. Daher kann ConstrainedCopy in einem eingeschränkten Ausführungsbereich (Cer) verwendet werden.

Diese Methode ist ein O(n)-Vorgang, wobei nlength ist.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

.NET Framework

Unterstützt in: 3.5, 3.0, 2.0

Community-Beiträge

HINZUFÜGEN
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
Anzeigen:
© 2014 Microsoft