Array.ConstrainedCopy(Array, Int32, Array, Int32, Int32) Metode

Definisi

Menyalin rentang elemen dari Array awal pada indeks sumber yang ditentukan dan menempelkannya ke elemen lain Array yang dimulai pada indeks tujuan yang ditentukan. Menjamin bahwa semua perubahan dibatalkan jika salinan tidak berhasil sepenuhnya.

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)

Parameter

sourceArray
Array

Array yang berisi data yang akan disalin.

sourceIndex
Int32

Bilangan bulat 32-bit yang mewakili indeks tempat sourceArray penyalinan dimulai.

destinationArray
Array

yang Array menerima data.

destinationIndex
Int32

Bilangan bulat 32-bit yang mewakili indeks tempat destinationArray penyimpanan dimulai.

length
Int32

Bilangan bulat 32-bit yang mewakili jumlah elemen yang akan disalin.

Pengecualian

sourceArray adalah null.

-atau-

destinationArray adalah null.

sourceArray dan destinationArray memiliki peringkat yang berbeda.

sourceArray Jenisnya tidak sama seperti atau berasal dari destinationArray jenis .

Setidaknya satu elemen dalam tidak dapat dilemparkan sourceArray ke jenis destinationArray.

sourceIndexkurang dari batas bawah dimensi pertama .sourceArray

-atau-

destinationIndexkurang dari batas bawah dimensi pertama .destinationArray

-atau-

length kurang dari nol.

length lebih besar dari jumlah elemen dari sourceIndex hingga akhir sourceArray.

-atau-

length lebih besar dari jumlah elemen dari destinationIndex hingga akhir destinationArray.

Keterangan

Parameter sourceArray dan destinationArray harus memiliki jumlah dimensi yang sama. sourceArray Jenisnya harus sama dengan atau berasal dari destinationArray jenis; jika tidak, maka ArrayTypeMismatchException akan dilemparkan. Tidak seperti Copy, ConstrainedCopy memverifikasi kompatibilitas jenis array sebelum melakukan operasi apa pun.

Saat menyalin antara array multidireksional, array bertingkah seperti array satu dimensi yang panjang, di mana baris (atau kolom) secara konseptual diletakkan secara end-to-end. Misalnya, jika array memiliki tiga baris (atau kolom) dengan masing-masing empat elemen, menyalin enam elemen dari awal array akan menyalin keempat elemen baris pertama (atau kolom) dan dua elemen pertama dari baris kedua (atau kolom). Untuk mulai menyalin dari elemen kedua baris ketiga (atau kolom), sourceIndex harus berupa batas atas baris pertama (atau kolom) ditambah panjang baris kedua (atau kolom) ditambah dua.

Jika sourceArray dan destinationArray tumpang tindih, metode ini bersifat seolah-olah nilai sourceArray asli dipertahankan di lokasi sementara sebelum destinationArray ditimpa.

[C++]

Metode ini setara dengan fungsi memmoveC/C++ standar, bukan memcpy.

Array dapat berupa array jenis referensi atau tipe nilai. Jika sourceArray dan destinationArray keduanya adalah array jenis referensi atau keduanya adalah array jenis Object, salinan dangkal dilakukan. Salinan dangkal Array adalah referensi baru Array yang berisi ke elemen yang sama dengan aslinya Array. Elemen itu sendiri atau apa pun yang direferensikan oleh elemen tidak disalin. Sebaliknya, salinan mendalam dari Array salinan elemen dan semuanya secara langsung atau tidak langsung dirujuk oleh elemen.

Jika metode ini melemparkan pengecualian saat menyalin, destinationArray tetap tidak berubah; oleh karena itu, ConstrainedCopy dapat digunakan dalam wilayah eksekusi yang dibatasi (Cer).

Metode ini adalah operasi $O(n)$, di mana $n$ adalah length.

Berlaku untuk

Lihat juga