Array.ConstrainedCopy(Array, Int32, Array, Int32, Int32) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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)
Parametri
- sourceIndex
- Int32
Intero a 32 bit che rappresenta l'indice in in sourceArray corrispondenza del quale inizia la copia.
- destinationIndex
- Int32
Intero a 32 bit che rappresenta l'indice in in destinationArray corrispondenza del quale inizia l'archiviazione.
- length
- Int32
Intero a 32 bit che rappresenta il numero di elementi da copiare.
Eccezioni
sourceArray e destinationArray hanno ranghi diversi.
Il sourceArray tipo non è né uguale a né derivato dal destinationArray tipo .
Non è possibile eseguire il cast di almeno un elemento in sourceArray al tipo di destinationArray.
sourceIndex è minore del limite inferiore della prima dimensione di sourceArray.
oppure
destinationIndex è minore del limite inferiore della prima dimensione di destinationArray.
oppure
length è minore di zero.
length è maggiore del numero di elementi da sourceIndex alla fine di sourceArray.
oppure
length è maggiore del numero di elementi da destinationIndex alla fine di destinationArray.
Commenti
I sourceArray parametri e destinationArray devono avere lo stesso numero di dimensioni. Il sourceArray tipo deve essere uguale o derivato dal destinationArray tipo. In caso contrario, viene generata un'eccezione ArrayTypeMismatchException . A differenza di Copy, ConstrainedCopy verifica la compatibilità dei tipi di matrice prima di eseguire qualsiasi operazione.
Quando si copia tra matrici multidimensionali, la matrice si comporta come una matrice unidimensionale lunga, in cui le righe (o le colonne) sono concettualmente disposte end-to-end. Ad esempio, se una matrice ha tre righe (o colonne) con quattro elementi ciascuno, la copia di sei elementi dall'inizio della matrice copia tutti e quattro gli elementi della prima riga (o colonna) e i primi due elementi della seconda riga (o colonna). Per iniziare a copiare dal secondo elemento della terza riga (o colonna), sourceIndex deve essere il limite superiore della prima riga (o colonna) più la lunghezza della seconda riga (o colonna) più due.
Se sourceArray e destinationArray si sovrappongono, questo metodo si comporta come se i valori originali di sourceArray siano stati conservati in una posizione temporanea prima destinationArray di essere sovrascritti.
[C++]
Questo metodo equivale alla funzione memmoveC/C++ standard, non memcpya .
Le matrici possono essere di tipo riferimento o matrici di tipo valore. Se sourceArray e destinationArray sono entrambe matrici di tipo riferimento o entrambe matrici di tipo Object, viene eseguita una copia superficiale. Una copia superficiale di un oggetto Array è un nuovo Array oggetto contenente riferimenti agli stessi elementi dell'oggetto originale Array. Gli elementi stessi o qualsiasi elemento a cui fanno riferimento gli elementi non vengono copiati. Al contrario, una copia completa di un Array copia gli elementi e tutto direttamente o indirettamente a cui fanno riferimento gli elementi.
Se questo metodo genera un'eccezione durante la copia, rimane destinationArray invariato, pertanto ConstrainedCopy può essere usato all'interno di un'area di esecuzione vincolata (Cer).
Questo metodo è un'operazione $O(n)$, dove $n$ è length.