Array.Copy và Buffer.BlockCopy đều làm điều tương tự, nhưng BlockCopynhằm mục đích sao chép mảng nguyên thủy cấp byte nhanh, trong khi đó Copylà việc triển khai mục đích chung. Câu hỏi của tôi là - bạn nên sử dụng trong những trường hợp BlockCopynào? Bạn có nên sử dụng nó bất cứ lúc nào khi bạn đang sao chép các mảng kiểu nguyên thủy hay chỉ nên sử dụng nó nếu bạn đang viết mã cho hiệu suất? Có điều gì nguy hiểm về việc sử dụng Buffer.BlockCopyquá mức Array.Copykhông?
byte[]. Không có sự khác biệt trong phiên bản phát hành. Đôi khi Array.Copy, đôi khi Buffer.BlockCopy(hơi) nhanh hơn.
Array.Copylà một phiên bản chuyên biệt hơn - ví dụ như nó chỉ có thể sao chép các mảng cùng thứ hạng.
Marshal.Copy:-). Tốt, sử dụngArray.Copycho các kiểu tham chiếu, kiểu giá trị phức tạp và nếu kiểu không thay đổi,Buffer.BlockCopyđể "chuyển đổi" giữa các kiểu giá trị, mảng byte và phép byte. F.ex. sự kết hợp vớiStructLayoutkhá mạnh mẽ nếu bạn biết mình đang làm gì. Đối với hiệu suất, có vẻ như cuộc gọi không được quản lý đếnmemcpy/cpblklà nhanh nhất cho điều đó - xem code4k.blogspot.nl/2010/10/… .