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