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 的范围重叠,则重叠字节的值在复制到目标之前不会被覆盖。

 

posted @ 2022-05-26 17:04  黑羽青衣  阅读(3320)  评论(0编辑  收藏  举报