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 sourceArray
da cui viene avviata la copia.
- destinationIndex
- Int32
Intero a 32 bit che rappresenta l'indice in destinationArray
da cui viene avviata l'archiviazione.
- length
- Int32
Intero a 32 bit che rappresenta il numero degli elementi da copiare.
Eccezioni
sourceArray
e destinationArray
hanno classificazioni diverse.
Il tipo sourceArray
non è né lo stesso né derivato dal tipo destinationArray
.
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 compresi tra sourceIndex
e la fine di sourceArray
.
-oppure-
length
è maggiore del numero di elementi compresi tra destinationIndex
e la 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 esegue la copia tra matrici multidimensionali, la matrice si comporta come una matrice unidimensionale lunga, in cui le righe (o le colonne) vengono disposte concettualmente 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 copierà 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 mantenuti in una posizione temporanea prima destinationArray
della sovrascrittura.
[C++]
Questo metodo equivale alla funzione memmove
C/C++ standard, non memcpy
a .
Le matrici possono essere matrici di tipo riferimento o matrici di tipo valore. Se sourceArray
e destinationArray
sono entrambe matrici di tipo riferimento o sono 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 oggetto copia gli elementi e tutto direttamente o indirettamente a cui fanno riferimento gli elementi.
Se questo metodo genera un'eccezione durante la copia, l'oggetto destinationArray
rimane invariato, pertanto ConstrainedCopy può essere usato all'interno di un'area di esecuzione vincolata (Cer).
Questo metodo è un'operazione O(n
), dove n
è length
.