Array.CopyและBuffer.BlockCopyทั้งคู่ทำสิ่งเดียวกัน แต่BlockCopy
มุ่งเป้าไปที่การคัดลอกอาร์เรย์ดั้งเดิมระดับไบต์อย่างรวดเร็วในขณะที่Copy
การใช้งานทั่วไป คำถามของฉันคือ - คุณควรใช้ภายใต้สถานการณ์ใดBlockCopy
? คุณควรใช้เมื่อใดก็ได้เมื่อคุณกำลังคัดลอกอาร์เรย์ประเภทดั้งเดิมหรือคุณควรใช้เฉพาะเมื่อคุณกำลังเข้ารหัสเพื่อประสิทธิภาพเท่านั้น? มีอันตรายจากการใช้Buffer.BlockCopy
เกินArray.Copy
หรือไม่
byte[]
. ไม่มีความแตกต่างในเวอร์ชันที่วางจำหน่าย บางครั้งบางครั้งArray.Copy
ก็Buffer.BlockCopy
เร็วขึ้น (เล็กน้อย)
Array.Copy
ค่อนข้างเป็นเวอร์ชันพิเศษตัวอย่างเช่นสามารถคัดลอกได้เฉพาะอาร์เรย์อันดับเดียวกัน
Marshal.Copy
:-) ใช้Array.Copy
สำหรับประเภทอ้างอิงประเภทค่าเชิงซ้อนและหากประเภทไม่เปลี่ยนแปลงBuffer.BlockCopy
สำหรับ "การแปลง" ระหว่างประเภทค่าอาร์เรย์ไบต์และเวทมนตร์ไบต์ F.ex. การผสมผสานกับStructLayout
มีประสิทธิภาพมากหากคุณรู้ว่าคุณกำลังทำอะไรอยู่ สำหรับผลการดำเนินงานดูเหมือนว่าการโทรที่ไม่มีการจัดการที่จะmemcpy
/cpblk
เป็นที่เร็วที่สุดสำหรับที่ - ดูcode4k.blogspot.nl/2010/10/...