Partager via


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 paramètres et destinationArray les sourceArray 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 disposé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 à copier à partir du deuxième élément de la troisième ligne (ou colonne), sourceIndex il 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 d’étaient sourceArray 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 des tableaux de type valeur. Si sourceArray et destinationArray sont à la fois des tableaux de type référence ou des deux tableaux de type Object, une copie peu profonde est effectuée. Une copie peu profonde 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 n’importe quoi référencés par les éléments ne sont pas copiés. En revanche, une copie approfondie d’une Array copie des é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 contrainte (Cer).

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

S’applique à

Voir aussi