缓冲区一词的含义是直接作用于内存的东西,操作非托管且以字节数组表示形式的内存的过程在 C# 中称为缓冲。 C#中缓冲区类的成员是BlockCopy(),它将字节从一个给定位置开始的数组复制到另一个从给定位置开始的数组,ByteLength()使用它可以获得数组中的总字节数, GetByte() 使用它可以获取给定位置处的字节,而 SetByte() 使用它可以在数组中的给定位置设置一个字节。
语法:
Buffer.Buffer_member_name(parameters);
其中 Buffer_member_name 是缓冲区类成员的名称,
参数是传递给它的参数。
Buffer 类有四个成员。他们是:
BlockCopy() 是一个 Buffer 成员,它将字节从给定位置开始的一个数组复制到从给定位置开始的另一个数组。
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"); } } }
输出:
说明:在上面的程序中,定义了一个名为program的类。然后调用main方法,其中定义两个不同大小的整数数组来存储整数。显示第一个数组的内容,并使用 Buffer 类的 ByteLength 成员显示第一个数组的字节长度。然后显示第二个数组的内容,并使用 Buffer 类的 ByteLength 成员显示第二个数组的字节长度。然后缓冲区类的Blockcopy()成员用于将从第二个参数指定的位置开始的一个数组的内容复制到从第四个参数指定的位置开始的另一个数组,最后一个参数表示第一个数组的字节长度。然后显示块复制操作后第一个数组的内容。然后显示块复制操作后的第二个数组的内容。
SetByte() 是 Buffer 类的 Buffer 成员,使用它可以在数组中的给定位置设置字节。
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)); } } }
输出:
说明:在上面的程序中,定义了一个名为check的类。然后调用main方法,其中使用一个整数数组来存储通过使用Buffer类的GetByte成员获取字节值的整数。然后使用Buffer类的SetByte成员来设置数组的字节值。然后显示使用 Buffer 类的 SetByte 成员修改后的数组。输出如上面的快照所示。
在本教程中,我们通过编程示例及其输出来了解 C# 中 Buffer 的定义、语法、工作原理以及缓冲区类的成员。
这是 C# Buffer 的指南。在这里,我们讨论 C# 缓冲区简介及其工作原理以及示例和代码实现。您还可以浏览我们其他推荐的文章以了解更多信息 –
以上是C# 缓冲区的详细内容。更多信息请关注PHP中文网其他相关文章!