Array.ConstrainedCopy(Array, Int32, Array, Int32, Int32) Méthode

Définition

Copie une plage d’éléments à partir d’un Array début à l’index source spécifié et les colle à un autre Array à partir de l’index de destination spécifié. Garantit que toutes les modifications sont annulées si la copie ne réussit pas complètement.

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)

Paramètres

sourceArray
Array

Array Qui contient les données à copier.

sourceIndex
Int32

Entier 32 bits qui représente l’index dans sourceArray lequel la copie commence.

destinationArray
Array

Qui Array reçoit les données.

destinationIndex
Int32

Entier 32 bits qui représente l’index dans destinationArray lequel le stockage commence.

length
Int32

Entier 32 bits qui représente le nombre d’éléments à copier.

Exceptions

sourceArray a la valeur null.

- ou -

destinationArray a la valeur null.

sourceArray et destinationArray ont des rangs différents.

Le sourceArray type n’est ni le même que celui dérivé du destinationArray type.

Au moins un élément ne sourceArray peut pas être converti en type de destinationArray.

sourceIndex est inférieur à la limite inférieure de la première dimension de sourceArray.

- ou -

destinationIndex est inférieur à la limite inférieure de la première dimension de destinationArray.

- ou -

length est inférieur à zéro.

length est supérieur au nombre d’éléments de sourceIndex la fin de sourceArray.

- ou -

length est supérieur au nombre d’éléments de destinationIndex la fin de destinationArray.

Remarques

Les paramètres et sourceArray les destinationArray paramètres doivent avoir le même nombre de dimensions. Le sourceArray type doit être identique ou dérivé du destinationArray type ; sinon, un ArrayTypeMismatchException type est levée. Contrairement Copyà , ConstrainedCopy vérifie la compatibilité des types de tableaux avant d’effectuer une opération.

Lors de la copie entre des tableaux multidimensionnels, le tableau se comporte comme un tableau unidimensionnel long, où les lignes (ou colonnes) sont conceptuellement posées de bout en bout. Par exemple, si un tableau comporte trois lignes (ou colonnes) avec quatre éléments chacun, la copie de six éléments à partir du début du tableau copie les quatre éléments de la première ligne (ou colonne) et les deux premiers éléments de la deuxième ligne (ou colonne). Pour commencer la copie à partir du deuxième élément de la troisième ligne (ou colonne), sourceIndex doit être la limite supérieure de la première ligne (ou colonne) plus la longueur de la deuxième ligne (ou colonne) plus deux.

Si sourceArray et destinationArray se chevauchent, cette méthode se comporte comme si les valeurs d’origine d’ont sourceArray été conservées dans un emplacement temporaire avant destinationArray d’être remplacées.

[C++]

Cette méthode équivaut à la fonction memmoveC/C++ standard, et non memcpyà .

Les tableaux peuvent être des tableaux de type référence ou de type valeur. Si sourceArray et destinationArray sont des tableaux de type référence ou sont les deux tableaux de type Object, une copie superficielle est effectuée. Une copie superficielle d’un Array est une nouvelle Array référence contenant les mêmes éléments que l’original Array. Les éléments eux-mêmes ou tout ce qui est référencé par les éléments ne sont pas copiés. En revanche, une copie approfondie d’une Array copie copie les éléments et tous les éléments directement ou indirectement référencés par les éléments.

Si cette méthode lève une exception lors de la copie, le destinationArray reste inchangé ; par conséquent, ConstrainedCopy peut être utilisé dans une région d’exécution contrainte (Cer).

Cette méthode est une opération $O(n)$, où $n$ est length.

S’applique à

Voir aussi