首頁  >  文章  >  後端開發  >  C# 緩衝區

C# 緩衝區

王林
王林原創
2024-09-03 15:16:441003瀏覽

緩衝區一詞的意思是直接作用於記憶體的東西,操作非託管且以位元組數組表示形式的記憶體的過程在 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:C# 名稱下一篇:C# 名稱