Array.ConstrainedCopy(Array, Int32, Array, Int32, Int32) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
- sourceIndex
- Int32
Entier 32 bits qui représente l’index du sourceArray
auquel la copie commence.
- 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
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 memmove
C/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
.