Array.ConstrainedCopy(Array, Int32, Array, Int32, Int32) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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)
パラメーター
- sourceIndex
- Int32
コピー操作の開始位置となる sourceArray
内のインデックスを表す 32 ビット整数。
- destinationIndex
- Int32
格納を開始する destinationArray
のインデックスを表す 32 ビット整数。
- length
- Int32
コピーする要素の数を表す 32 ビット整数。
例外
sourceArray
と destinationArray
のランクが異なります。
sourceArray
はどちらも同じでもなく、destinationArray
型から派生したものでもありません。
sourceArray
の少なくとも 1 つの要素が destinationArray
の型にキャストできません。
sourceIndex
は sourceArray
の最初の次元の下限を下回っています。
- または -
destinationIndex
は destinationArray
の最初の次元の下限を下回っています。
- または -
length
が 0 未満です。
length
は sourceIndex
から最後の sourceArray
までの要素の数を超えています。
- または -
length
は destinationIndex
から最後の destinationArray
までの要素の数を超えています。
注釈
パラメーター sourceArray
と destinationArray
パラメーターは、同じ数のディメンションを持つ必要があります。 型は sourceArray
、型と同じか、その型から destinationArray
派生している必要があります。それ以外の場合は、an ArrayTypeMismatchException がスローされます。 とは異なり Copy、 ConstrainedCopy 操作を実行する前に配列型の互換性を確認します。
多次元配列間でコピーする場合、配列は長い 1 次元配列のように動作し、行 (または列) は概念的にエンドツーエンドで配置されます。 たとえば、配列にそれぞれ 4 つの要素を含む 3 つの行 (または列) がある場合、配列の先頭から 6 つの要素をコピーすると、最初の行 (または列) の 4 つの要素すべてがコピーされ、2 番目の行 (または列) の最初の 2 つの要素がコピーされます。 3 番目の行 (または列) の 2 番目の要素からのコピーを開始するには、 sourceIndex
最初の行 (または列) の上限に 2 行目 (または列) の長さを加えた 2 を加えたものにする必要があります。
重複する場合 sourceArray
、 destinationArray
このメソッドは、元の sourceArray
値が上書きされる前 destinationArray
に一時的な場所に保持されたかのように動作します。
[C++]
このメソッドは、標準の C/C++ 関数 memmove
に相当し、同じではありません memcpy
。
配列には、参照型配列または値型配列を指定できます。 参照型の配列であるかdestinationArray
、両方とも型Objectの配列である場合sourceArray
は、浅いコピーが実行されます。 a の浅いコピーは、元の Array 要素と同じ要素への参照を含む新しい Array コピーです Array。 要素自体または要素によって参照される要素はコピーされません。 一方、要素の Array ディープ コピーでは、要素とその要素によって直接または間接的に参照されるすべてのものがコピーされます。
このメソッドがコピー中に例外をスローした場合、 destinationArray
その例外は変更されません。したがって、 ConstrainedCopy 制約付き実行領域内 (Cer) 内で使用できます。
このメソッドは O(n
) 操作です。n
は length
です。