Array.ConstrainedCopy(Array, Int32, Array, Int32, Int32) Yöntem

Tanım

Belirtilen kaynak dizinden başlayan bir Array öğe aralığını kopyalar ve bunları belirtilen hedef dizinden başlayarak başka bir Array öğeye yapıştırır. Kopya tamamen başarılı olmazsa tüm değişikliklerin geri alındığını garanti eder.

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)

Parametreler

sourceArray
Array

Kopyalanacak Array verileri içeren.

sourceIndex
Int32

Kopyalamanın başladığı dizini sourceArray temsil eden 32 bitlik tamsayı.

destinationArray
Array

Array Verileri alan.

destinationIndex
Int32

Depolamanın başladığı dizinini destinationArray temsil eden 32 bitlik tamsayı.

length
Int32

Kopyalanacak öğe sayısını temsil eden 32 bitlik bir tamsayı.

Özel durumlar

sourceArray, null değeridir.

-veya-

destinationArray, null değeridir.

sourceArray ve destinationArray farklı derecelere sahip.

Tür sourceArray türüyle aynı veya türetilmiş destinationArray değildir.

içindeki sourceArray en az bir öğe türüne destinationArraytürlenemez.

sourceIndex , öğesinin ilk boyutunun alt sınırından küçüktür sourceArray.

-veya-

destinationIndex , öğesinin ilk boyutunun alt sınırından küçüktür destinationArray.

-veya-

length, sıfırdan küçüktür.

length , öğesinden sourceIndex sonuna kadar olan öğe sayısından sourceArraybüyüktür.

-veya-

length , öğesinden destinationIndex sonuna kadar olan öğe sayısından destinationArraybüyüktür.

Açıklamalar

sourceArray ve destinationArray parametreleri aynı sayıda boyuta sahip olmalıdır. Türün sourceArray türüyle aynı veya türünden destinationArray türetilmiş olması gerekir; aksi takdirde bir ArrayTypeMismatchException oluşturulur. ConstrainedCopy'dan farklı olarakCopy, herhangi bir işlem gerçekleştirmeden önce dizi türlerinin uyumluluğunu doğrular.

Çok boyutlu diziler arasında kopyalama yaparken, dizi, satırların (veya sütunların) kavramsal olarak uçtan uca yerleştirildiği uzun bir tek boyutlu dizi gibi davranır. Örneğin, bir dizide her biri dört öğe içeren üç satır (veya sütun) varsa, dizinin başından altı öğe kopyalandığında ilk satırdaki (veya sütundaki) dört öğenin tümü ve ikinci satırdaki (veya sütundaki) ilk iki öğe kopyalanır. Üçüncü satırın (veya sütunun) ikinci öğesinden kopyalamaya başlamak için, sourceIndex ilk satırın (veya sütunun) üst sınırı ile ikinci satırın (veya sütunun) uzunluğu artı iki olmalıdır.

Ve çakışıyorsasourceArray, bu yöntem özgün değerlerinin sourceArray üzerine yazılmadan önce destinationArray geçici bir konumda korunmuş gibi davranır.destinationArray

[C++]

Bu yöntem, standart C/C++ işleviyle memmoveeşdeğerdir, değil memcpy.

Diziler, başvuru türü veya değer türü diziler olabilir. ve destinationArray her ikisi de başvuru türündeki diziler ise sourceArray veya her ikisi de türünde Objectdiziyse, sığ bir kopya gerçekleştirilir. basit bir Array kopyası, özgün Arrayile aynı öğelere başvurular içeren yeni Array bir kopyadır. Öğelerin kendileri veya öğelerin başvurdukları herhangi bir şey kopyalanmaz. Buna karşılık, bir öğenin derin kopyası Array öğeleri ve öğeler tarafından doğrudan veya dolaylı olarak başvuruda bulunılan her şeyi kopyalar.

Bu yöntem kopyalama sırasında bir özel durum oluşturursa, destinationArray değişmeden kalır; bu nedenle, ConstrainedCopy kısıtlanmış yürütme bölgesinde (Cer ) kullanılabilir.

Bu yöntem bir O(n) işlemidir; burada n olur length.

Şunlara uygulanır

Ayrıca bkz.