C# 缓冲区

王林
发布: 2024-09-03 15:16:44
原创
1002 人浏览过

缓冲区一词的含义是直接作用于内存的东西,操作非托管且以字节数组表示形式的内存的过程在 C# 中称为缓冲。 C#中缓冲区类的成员是BlockCopy(),它将字节从一个给定位置开始的数组复制到另一个从给定位置开始的数组,ByteLength()使用它可以获得数组中的总字节数, GetByte() 使用它可以获取给定位置处的字节,而 SetByte() 使用它可以在数组中的给定位置设置一个字节。

语法:

Buffer.Buffer_member_name(parameters);
登录后复制

其中 Buffer_member_name 是缓冲区类成员的名称,

参数是传递给它的参数。

使用 C# 缓冲区

  • 每当需要直接操作内存时,更具体地说,如果我们想要以字节数组表示形式操作非托管内存,我们就会在 C# 中使用 Buffer。
  • Buffer 类由几个缓冲区成员组成,分别是 GetByte()、SetByte()、BlockCopy() 和 ByteLength()。
  • GetByte() 是 Buffer 类的 Buffer 成员,使用它可以获得给定位置的字节。
  • SetByte() 是 Buffer 类的 Buffer 成员,使用它可以在数组中的给定位置设置字节。
  • BlockCopy() 是一个 Buffer 成员,它将字节从给定位置开始的一个数组复制到从给定位置开始的另一个数组。
  • ByteLength() 是一个 Buffer 成员,使用它可以获得数组中的总字节数。

C# 缓冲区类的成员

Buffer 类有四个成员。他们是:

 1.BlockCopy()

BlockCopy() 是一个 Buffer 成员,它将字节从给定位置开始的一个数组复制到从给定位置开始的另一个数组。

2.字节长度()

ByteLength() 是一个 Buffer 成员,使用它可以获得数组中的总字节数。

以下是示例:

C# 程序演示 ByteCopy() 类的 Buffer 成员和 ByteLength() 成员将字节从给定位置开始的一个数组复制到从给定位置开始的另一个数组:

代码:

using System;
//a class called program is defined
public class program
{
//main method is called
public static void Main(string[] args)
{
//an integer array is defined to store 4 integers
int[] strarray1 = new int[4] { 100, 200, 300, 400 };
//another integer array is defined to store 7 integers
int[] strarray2 = new int[7] { 0,0,0,0,500,600,700 };
Console.Write("The contents of the string array one before performing the Block operation is:\n");
//Bytelength() member of buffer class is used to find the bytelength of th given array
Console.Write("The name of the array is strarray1 and the byte length of the array is :{0}\n", Buffer.ByteLength(strarray1));
for (int j = 0; j < strarray1.Length; j++)
{
Console.Write(strarray1[j]);
Console.Write("\n");
}
Console.Write("The contents of the string array two before performing the Block copy operation is:\n");
Console.Write("The name of the array is strarray2 and the byte length of the array is :{0}\n", Buffer.ByteLength(strarray2));
for (int a = 0; a < strarray2.Length; a++)
{
Console.Write(strarray2[a]);
Console.Write("\n");
}
//Blockcopy() member of buffer class is used to copy the contents of one array starting from the location specified by the second parameter to another array starting from the location specified by fourth parameter and last parameter signifies the bytelength of the first array
Buffer.BlockCopy(strarray1, 0, strarray2, 0,Buffer.ByteLength(strarray1));
Console.Write("The contents of the string array one after performing the block copy operation is:\n");
Console.Write("The name of the array is strarray1 and the contents are :\n");
for (int b = 0; b < strarray1.Length; b++)
{
Console.Write(strarray1[b]);
Console.Write("\n");
}
Console.Write("The contents of the string array two after performing the block copy operation is:\n");
Console.Write("The name of the array is strarray2 and the contents are :\n");
for (int d = 0; d < strarray2.Length; d++) {
Console.Write(strarray2[d]);
Console.Write("\n");
}
}
}
登录后复制

输出:

C# 缓冲区

说明:在上面的程序中,定义了一个名为program的类。然后调用main方法,其中定义两个不同大小的整数数组来存储整数。显示第一个数组的内容,并使用 Buffer 类的 ByteLength 成员显示第一个数组的字节长度。然后显示第二个数组的内容,并使用 Buffer 类的 ByteLength 成员显示第二个数组的字节长度。然后缓冲区类的Blockcopy()成员用于将从第二个参数指定的位置开始的一个数组的内容复制到从第四个参数指定的位置开始的另一个数组,最后一个参数表示第一个数组的字节长度。然后显示块复制操作后第一个数组的内容。然后显示块复制操作后的第二个数组的内容。

3. SetByte()

SetByte() 是 Buffer 类的 Buffer 成员,使用它可以在数组中的给定位置设置字节。

4. GetByte()

GetByte()是 Buffer 类的 Buffer 成员,使用它可以获得给定位置的字节。

以下是示例:

演示类 SetByte() 和 GetByte() 成员的 Buffer 成员的 C# 程序:

代码:

using System;
//a class called check is defined
class check
{
//main method is called
static void Main()
{
//an inetger array is used to store the integers whose byte values are obtained by using GetByte member of buffer class
int[] arrayname = { 0, 1, 512 };
for (inti = 0; i<Buffer.ByteLength(arrayname); i++)
{
Console.WriteLine(Buffer.GetByte(arrayname, i));
}
// SetByte member of buffer class is used to set the byte values of the array
Buffer.SetByte(arrayname, 0, 10);
Buffer.SetByte(arrayname, 4, 20);
Buffer.SetByte(arrayname, 8, 30);
// The modified array after using SetByte member of the Buffer class is displayed
Console.WriteLine("The modified array after using SetByte member of the Buffer class is:");
for (inti = 0; i<Buffer.ByteLength(arrayname); i++)
{
Console.WriteLine(Buffer.GetByte(arrayname, i));
}
}
}
登录后复制

输出:

C# 缓冲区

说明:在上面的程序中,定义了一个名为check的类。然后调用main方法,其中使用一个整数数组来存储通过使用Buffer类的GetByte成员获取字节值的整数。然后使用Buffer类的SetByte成员来设置数组的字节值。然后显示使用 Buffer 类的 SetByte 成员修改后的数组。输出如上面的快照所示。

结论

在本教程中,我们通过编程示例及其输出来了解 C# 中 Buffer 的定义、语法、工作原理以及缓冲区类的成员。

推荐文章

这是 C# Buffer 的指南。在这里,我们讨论 C# 缓冲区简介及其工作原理以及示例和代码实现。您还可以浏览我们其他推荐的文章以了解更多信息 –

  1. C# 中的随机数生成器是什么?
  2. Java 中的静态构造函数 |工作|应用
  3. C# 中的 TextWriter |示例
  4. 如何在 C# 中使用静态构造函数?

以上是C# 缓冲区的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!