1. 程式人生 > 其它 >C#資料結構-Buffer.BlockCopy詳解

C#資料結構-Buffer.BlockCopy詳解

Buffer.BlockCopy的詳細文件

語法

將從指定偏移量開始的源陣列中指定數量的位元組複製到以特定偏移量開始的目標陣列。

public static void BlockCopy(
    Array src,
    int srcOffset,
    Array dst,
    int dstOffset,
    int count
)

 引數

src

型別:System.Array

源緩衝區。

srcOffset

型別: System.Int32

基於零的位元組偏移到src中。

dst

型別: System.Array

目標緩衝區。

dstOffset

型別: System.Int32

基於零的位元組偏移到dst中。

count

型別: System.Int32

要複製的位元組數。
備註

該方法將在src從srcOffset索引開始複製count位元組,從dst的索引dstOffset開始複製到dst。srcOffset和dstOffset都是從零開始的; 也就是說,每個緩衝區中的第一個位元組位於位置0,而不是位置1。

該  BlockCopy方法訪問中的位元組的src使用的在記憶體中的偏移,而不是程式結構,如索引或上部和下部陣列邊界引數陣列。例如,如果在應用程式的程式語言中宣告一個Int32陣列,其下限為-50,然後將該陣列和偏移量5傳遞給BlockCopy方法,該方法將訪問第一個陣列元素是陣列的第二個元素,它位於索引-49處。此外,首先訪問陣列元素-49索引下的那一個位元組取決於執行應用程式的計算機位元組序。

顧名思義,BlockCopy方法複製一個位元組塊作為一個整體,而不是一次複製一個位元組。因此,如果當src和dst引用相同的陣列時,並且srcOffset + count -1的範圍與dstOffset + count -1 的範圍重疊,則重疊位元組的值在複製到目標之前不會被覆蓋。