Array.ConstrainedCopy(Array, Int32, Array, Int32, Int32) 方法

定義

Array 複製某範圍的項目 (從指定的來源索引開始),並且將它們貼至另一個 Array (從指定的目的索引開始)。 如果此複本未完全成功,則保證所有的變更一定未完成。

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)

參數

sourceArray
Array

包含要複製資料的 Array

sourceIndex
Int32

32 位元的整數,代表 sourceArray 中的索引,由此開始複製。

destinationArray
Array

接收資料的 Array

destinationIndex
Int32

32 位元的整數,代表 destinationArray 中的索引,由此開始儲存。

length
Int32

32 位元整數,表示要複製的項目數目。

例外狀況

sourceArraynull

-或-

destinationArraynull

sourceArraydestinationArray 的順位不同。

sourceArray 類型不同於、也非衍生自 destinationArray 類型。

sourceArray 至少有一個項目無法轉換成 destinationArray 的類型。

sourceIndex 小於 sourceArray 的第一個維度下限。

-或-

destinationIndex 小於 destinationArray 的第一個維度下限。

-或-

length 小於零。

length 大於從 sourceIndexsourceArray 結尾的項目數。

-或-

length 大於從 destinationIndexdestinationArray 結尾的項目數。

備註

sourceArraydestinationArray 參數必須具有相同的維度數目。 此 sourceArray 類型必須與 或 衍生自 destinationArray 類型相同, ArrayTypeMismatchException 否則會擲回 。 不同于 CopyConstrainedCopy 請先驗證陣列類型的相容性,再執行任何作業。

在多維度陣列之間複製時,陣列的行為就像長一維陣列,其中資料列 (或資料行) 在概念上配置端對端。 例如,如果陣列有三個數據列 (或資料行) 各有四個元素,則從陣列開頭複製六個元素,則會複製第一列 (或資料行) 的所有四個元素,以及第二列 (或資料行) 的前兩個元素。 若要從第三列 (或資料行) 的第二個元素開始複製, sourceIndex 必須是第一列 (或資料行) 加上第二列 (或資料行) 加上兩個數據列的長度上限。

如果 sourceArraydestinationArray 重迭,這個方法的行為就如同 在覆寫之前 destinationArray ,在暫存位置中保留的原始值 sourceArray 一樣。

[C++]

這個方法相當於標準 C/C++ 函式 memmove ,而不是 memcpy

陣列可以是參考型別陣列或實值型別陣列。 如果 sourceArraydestinationArray 都是參考型別陣列,或是 兩種型 Object 別的陣列,則會執行淺層複製。 的 Array 淺層複本是新的 Array ,其中包含與原始 Array 相同的專案參考。 不會複製專案本身或專案所參考的任何專案。 相反地,的深層複本 Array 會複製元素,以及專案直接或間接參考的所有專案。

如果此方法在複製時擲回例外狀況,則 destinationArray 維持不變;因此, ConstrainedCopy 可以在限制的執列區域內使用 (Cer) 。

這個方法是 O (n) 作業,其中 nlength

適用於

另請參閱