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/...