Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

Buffer.BlockCopy ใน C#


ภาพรวม

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