Și parametrii sourceArray destinationArray trebuie să aibă același număr de dimensiuni. În plus, destinationArray au fost identificate și trebuie să aibă un număr suficient de elemente, începând cu poziția destinationIndex pentru a se potrivi toate datele copiate.
Dacă sourceArray și destinationArray se suprapun, această metodă se comportă ca și în cazul în care valorile inițiale sourceArray au fost salvate într-o locație temporară înainte de destinationArray suprascrisă.
Această metodă este echivalentă cu funcțiile standard ale C / C ++ memmove. în loc de memcpy.
Matricele pot avea un tip de referință sau un tip de valoare. Turnarea se efectuează, dacă este necesar.
La copierea valorii tip de acces matrice de fiecare element este despachetat, iar apoi copiat. Când copiați valorile din elementul de ambalare tip de referință tip matrice fiecare conversie și apoi copiate.
La copierea de matrice de tip de referință sau un tip de valoare într-un obiect matrice, obiect este creat pentru a stoca fiecare valoare sau de referință, și apoi copiate. Când copiați din obiectul nu poate fi un tip de referință sau o matrice de tip valoare și matrice de destinație are loc InvalidCastException excepție.
În cazul în care sourceArray destinationArray ambele tablouri și tipuri de referință, sau ambele matrice de tip Object. Aceasta a efectuat o copie incompletă. Incomplet copie Array - o nouă matrice care conține referințe la aceleași elemente ca și Array originală. Elementele proprii sau orice lor elemente de legătură nu sunt copiate. În contrast, o copie profundă a unei matrice de copii elementele și toate elementele menționate în mod direct sau indirect.
ArrayTypeMismatchException creat în cazul în care Matricele tipuri incompatibile. tip de compatibilitate este definită după cum urmează:
Tipul nu este compatibil cu el însuși.
Tipul de valoare este compatibil cu obiect și interfață de tip puse în aplicare de acest tip de valoare. Tipul de valoare este considerată a fi conectat la interfața numai în cazul în care pune în aplicare în mod direct această interfață. tipuri nu sunt compatibile deconectate.
Două tipuri integrate (predefinite) de valoare sunt compatibile în cazul în care procesul de copiere de tipul de sursă la tipul de destinație este împrăștierii de transformare. conversie Lărgirea nu duce la pierderea de informații, în timp ce o conversie îngustarea poate duce la pierderea de date. De exemplu, conversia 32-bit semnat întreg pe 64 de biți a semnat întreg este lărgirea de conversie și conversia 64-bit semnat întreg pe 32 de biți, transformarea întreg se reduce. Pentru mai multe informații despre modificările, consultați. În secțiunea Conversie.
Valorile integrate de tip (utilizator) este compatibil doar cu ea însăși.
Transferurile sprijină conversia implicită la ENUM și tipul său de bază.
Dacă fiecare element al matricei necesită acționare sourceArray (de exemplu, din clasa de bază la clasa derivată sau interfața obiectului) și unul sau mai multe elemente care nu pot fi transformate într-un tip destinationArray corespunzător. InvalidCastException excepție are loc.
Dacă această metodă aruncă o excepție de la copierea de stat destinationArray nedefinită.
Această metodă este O (n) operații, unde n - lungime.