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 dans sourceArray lequel la copie commence.
- 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 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.