ภาพรวม
Buffer.BlockCopy() คัดลอกบล็อกไบต์จากอาร์เรย์ต้นทางไปอาร์เรย์ปลายทาง ทำงานระดับหน่วยความจำ ตรงและเร็ว
ตัวอย่างโค้ดเต็ม
using System;
class Demo
{
static void Main()
{
byte[] b1 = new byte[] { 55, 66, 77, 88, 99 };
byte[] b2 = new byte[8];
Buffer.BlockCopy(b1, 0, b2, 0, 5); // คัดลอก 5 ไบต์
BufferFunc(b2);
}
static void BufferFunc(byte[] a)
{
for (int j = 0; j < a.Length; j++) Console.Write(a[j]);
Console.WriteLine();
}
}
ผลลัพธ์
5566778899000
พารามิเตอร์
Buffer.BlockCopy(src, srcOffset, dst, dstOffset, count)
srcOffset,dstOffset,count= จำนวน ไบต์- ทำงานกับ primitive arrays ที่เก็บติดกัน (contiguous memory)
- ไม่ทำงานกับ jagged arrays (array of arrays) หรือ arrays ของ reference types