Array.ConstrainedCopy(Array, Int32, Array, Int32, Int32) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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
- sourceIndex
- Int32
Kopyalamanın başladığı dizini sourceArray
temsil eden 32 bitlik tamsayı.
- 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
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 destinationArray
tü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 sourceArray
büyüktür.
-veya-
length
, öğesinden destinationIndex
sonuna kadar olan öğe sayısından destinationArray
bü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 memmove
eş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
.