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

Définition

Copie une plage d’éléments à partir d’un Array commençant à l’index source spécifié et les colle dans un autre Array commençant à l’index de destination spécifié. Garantit que toutes les modifications sont annulées si la copie ne se déroule pas intégralement avec succès.

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 du sourceArray auquel la copie commence.

destinationArray
Array

Array qui reçoit les données.

destinationIndex
Int32

Entier 32 bits qui représente l’index du destinationArray auquel 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 classements différents.

Le type sourceArray n’est pas le même que le type destinationArray, ni un dérivé de celui-ci.

Au moins un élément de sourceArray ne peut pas être converti en type 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 compris entre sourceIndex et la fin de sourceArray.

  • ou -

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

Remarques

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

Lors d’une copie entre des tableaux multidimensionnels, le tableau se comporte comme un tableau unidimensionnel de type long, où les lignes (ou les colonnes) sont conceptuellement de bout en bout. Par exemple, si un tableau a 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 à copier à partir du deuxième élément de la troisième ligne (ou colonne), il sourceIndex doit s’agir de la limite supérieure de la première ligne (ou colonne) et de 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 de sourceArray étaient conservées dans un emplacement temporaire avant d' destinationArray être remplacées.

[C++]

Cette méthode est équivalente à la fonction C/C++ standard memmove , et non à la fonction memcpy .

Les tableaux peuvent être des tableaux de types référence ou des tableaux de type valeur. Si sourceArray et destinationArray sont tous deux des tableaux de types référence ou des deux tableaux de type Object , une copie superficielle est effectuée. Une copie superficielle d’un Array est un nouveau Array contenant des références aux mêmes éléments que le d’origine Array . Les éléments eux-mêmes ou tout élément référencé par les éléments ne sont pas copiés. En revanche, une copie complète d’un Array copie les éléments et tout ce qui est directement ou indirectement référencé 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 restreinte ( Cer ).

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

S’applique à

Voir aussi