在C#中,ByteBuffer
類似于Java中的 ByteBuffer
using System;
using System.Buffers;
ByteBuffer
實例:// 創建一個長度為10的字節緩沖區
var byteBuffer = new byte[10];
ByteBuffer
寫入數據:byteBuffer[0] = 1;
byteBuffer[1] = 2;
// ...
ByteBuffer
讀取數據:byte firstByte = byteBuffer[0];
byte secondByte = byteBuffer[1];
// ...
ArrayPool<T>
管理內存:// 創建一個字節緩沖區
byte[] byteBuffer = ArrayPool<byte>.Shared.Rent(10);
try
{
// 使用字節緩沖區
}
finally
{
// 釋放字節緩沖區
ArrayPool<byte>.Shared.Return(byteBuffer);
}
BinaryPrimitives
類處理整數和字節之間的轉換:using System.Buffers.Binary;
int value = 42;
byte[] byteBuffer = new byte[sizeof(int)];
// 將整數轉換為字節
BinaryPrimitives.WriteInt32LittleEndian(byteBuffer, value);
// 將字節轉換回整數
int result = BinaryPrimitives.ReadInt32LittleEndian(byteBuffer);
BitConverter
類處理浮點數和字節之間的轉換:float value = 3.14f;
byte[] byteBuffer = BitConverter.GetBytes(value);
// 將字節轉換回浮點數
float result = BitConverter.ToSingle(byteBuffer, 0);
MemoryMarshal
類處理結構體和字節之間的轉換:using System.Runtime.InteropServices;
struct ExampleStruct
{
public int A;
public float B;
}
ExampleStruct example = new ExampleStruct { A = 42, B = 3.14f };
// 將結構體轉換為字節
int size = Marshal.SizeOf<ExampleStruct>();
byte[] byteBuffer = new byte[size];
MemoryMarshal.Write(byteBuffer, ref example);
// 將字節轉換回結構體
ExampleStruct result = MemoryMarshal.Read<ExampleStruct>(byteBuffer);
這些示例展示了如何在C#中使用 ByteBuffer
(即字節數組)進行數據處理。你可以根據需要調整代碼以滿足特定場景的需求。