Array.ConstrainedCopy(Array, Int32, Array, Int32, Int32) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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
- sourceIndex
- Int32
Bilangan bulat 32-bit yang mewakili indeks tempat sourceArray penyalinan dimulai.
- 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 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.