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 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.