Array.ConstrainedCopy(Array, Int32, Array, Int32, Int32) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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)
Parametrar
- sourceIndex
- Int32
Ett 32-bitars heltal som representerar indexet där sourceArray kopieringen börjar.
- destinationIndex
- Int32
Ett 32-bitars heltal som representerar indexet där destinationArray lagringen börjar.
- length
- Int32
Ett 32-bitars heltal som representerar antalet element som ska kopieras.
Undantag
sourceArray och destinationArray har olika rangordningar.
Typen sourceArray är varken samma som eller härledd från destinationArray typen.
Minst ett element i sourceArray kan inte omvandlas till typen destinationArray.
sourceIndex är mindre än den nedre gränsen för den första dimensionen av sourceArray.
-eller-
destinationIndex är mindre än den nedre gränsen för den första dimensionen av destinationArray.
-eller-
length är mindre än noll.
length är större än antalet element från sourceIndex till slutet av sourceArray.
-eller-
length är större än antalet element från destinationIndex till slutet av destinationArray.
Kommentarer
Parametrarna sourceArray och destinationArray måste ha samma antal dimensioner. Typen sourceArray måste vara samma som eller härledd från destinationArray typen. Annars genereras en ArrayTypeMismatchException . Till skillnad från Copyverifierar ConstrainedCopy verifierar kompatibiliteten för matristyperna innan du utför någon åtgärd.
När du kopierar mellan flerdimensionella matriser fungerar matrisen som en lång endimensionell matris, där raderna (eller kolumnerna) konceptmässigt läggs från slutpunkt till slutpunkt. Om en matris till exempel har tre rader (eller kolumner) med fyra element var kopierar du sex element från början av matrisen och kopierar alla fyra elementen i den första raden (eller kolumnen) och de två första elementen i den andra raden (eller kolumnen). Om du vill börja kopiera från det andra elementet i den tredje raden (eller kolumnen) sourceIndex måste du vara den övre gränsen för den första raden (eller kolumnen) plus längden på den andra raden (eller kolumnen) plus två.
Om sourceArray och destinationArray överlappar fungerar den här metoden som om de ursprungliga värdena sourceArray för bevarades på en tillfällig plats innan destinationArray den skrevs över.
[C++]
Den här metoden motsvarar C/C++-standardfunktionen memmove, inte memcpy.
Matriserna kan vara matriser av referenstyp eller värdetyp. Om sourceArray och destinationArray är båda matriser av referenstyp eller båda matriserna av typen Objectutförs en ytlig kopia. En ytlig kopia av en Array är en ny Array som innehåller referenser till samma element som det ursprungliga Array. Elementen själva eller något som refereras till av elementen kopieras inte. Däremot kopierar en djup kopia av ett Array element och allt som refereras direkt eller indirekt av elementen.
Om den här metoden genererar ett undantag vid kopiering destinationArray , förblir den oförändrad. Därför ConstrainedCopy kan den användas i en begränsad körningsregion (Cer).
Den här metoden är en åtgärd $O(n)$ där $n$ är length.