我目前正在使用Array.Copy来移动数组:
Array.Copy(array, 0, array, 1, array.Length - 1);
比使用循环更快。我知道其他语言中的类似函数(例如memcpy)是未定义的,或者有时会在编译器过于激进时中断。在.NET中考虑这种安全性是否合理?
答案 0 :(得分:30)
是的,这是安全的。在这种情况下,方法的行为应该是documented:
如果sourceArray和destinationArray重叠,则此方法的行为就像sourceArray的原始值在覆盖destinationArray之前保存在临时位置一样。