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 大于从 sourceIndex 元素到末尾的 sourceArray元素数。

-或-

length 大于从 destinationIndex 元素到末尾的 destinationArray元素数。

注解

参数sourceArraydestinationArray必须具有相同数量的维度。 该 sourceArray 类型必须与类型相同或派生 destinationArray 自该类型;否则,将引发一个 ArrayTypeMismatchException 类型。 与上述不同 CopyConstrainedCopy 在执行任何操作之前验证数组类型的兼容性。

在多维数组之间复制时,数组的行为类似于长一维数组,其中行(或列)在概念上是端到端布局的。 例如,如果数组具有三行(或列),其中每个元素有四个元素,则从数组开头复制六个元素将复制第一行(或列)和第二行的前两个元素(或列)。 若要开始从第三行(或列)的第二个元素进行复制, sourceIndex 必须是第一行(或列)的上限加上第二行(或列)的长度加 2。

如果sourceArraydestinationArray重叠,此方法的行为就像在覆盖之前sourceArray在临时位置保留的原始值destinationArray一样。

[C++]

此方法等效于标准 C/C++ 函数 memmove,而不是 memcpy

数组可以是引用类型数组或值类型数组。 sourceArray如果destinationArray同时是引用类型数组或两个类型Object数组,则执行浅表复制。 浅表副本 Array 是一个新的 Array 包含对与原始 Array元素相同的元素的引用。 不会复制元素本身或元素引用的任何内容。 相比之下,元素的深层副本 Array 将复制元素以及元素直接或间接引用的所有内容。

如果此方法在复制时引发异常,则 destinationArray 保持不变;因此, ConstrainedCopy 可以在受约束的执行区域(Cer)中使用。

此方法是一个 $O(n)$ 操作,其中 $n$ 为 length

适用于

另请参阅