如何在 C# 中使用 Buffer 您所在的位置:网站首页 QQ昵称是1是什么意思 如何在 C# 中使用 Buffer

如何在 C# 中使用 Buffer

2023-08-17 18:49| 来源: 网络整理| 查看: 265

缓冲区 是内存中的一组字节序列,缓冲 是用来处理落在内存中的数据,.NET 缓冲 指的是处理 非托管内存 中的数据,用 byte[] 来表示。

当你想把数据写入到内存或者你想处理非托管内存中的数据,可以使用 .NET 提供的 System.Buffer类,这篇文章就来讨论如何使用 Buffer。

Buffer 下的方法列表

Buffer 类包含了下面几个方法:

BlockCopy(Array, Int32, Array, Int32)

用于将指定位置开始的 原数组 copy 到 指定位置开始的 目标数组。

ByteLength(Array)

表示数组中 byte 字节的总数。

GetByte(Array, Int32)

在数组一个指定位置中提取出一个 byte。

SetByte(Array, Int32, Byte)

在数组的一个指定位置中设置一个 byte。

MemoryCopy(Void*, Void*, Int64, Int64)

从第一个源地址上copy 若干个byte 到 目标地址中。

理解 Array 和 Buffer

在了解 Buffer 之前,我们先看看 Array 类,Array 类中有一个 Copy() 方法用于将数组的内容 copy 到另一个数组中,在 Buffer 中也提供了一个类似的 BlockCopy() 方法和 Array.Copy() 做的一样的事情,不过 Buffer.BlockCopy() 要比 Array.Copy() 的性能高得多,原因在于前者是按照 byte 拷贝,后者是 content 拷贝。

数组之间的 bytes copy

你可以利用 Buffer.BlockCopy() 方法 将源数组的字节 copy 到目标数组,如下代码所示:

static void Main() {   short [] arr1 = new short[] { 1, 2, 3, 4, 5};   short [] arr2 = new short[10];   int sourceOffset = 0;   int destinationOffset = 0;   int count = 2 * sizeof(short);   Buffer.BlockCopy(arr1, sourceOffset, arr2, destinationOffset, count);   for (int i = 0; i 


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有