当源和目标是同一个数组时,Array.Copy是否安全?

时间:2012-06-22 03:05:38

标签: c#

我目前正在使用Array.Copy来移动数组:

Array.Copy(array, 0, array, 1, array.Length - 1);

比使用循环更快。我知道其他语言中的类似函数(例如memcpy)是未定义的,或者有时会在编译器过于激进时中断。在.NET中考虑这种安全性是否合理?

1 个答案:

答案 0 :(得分:30)

是的,这是安全的。在这种情况下,方法的行为应该是documented

  

如果sourceArray和destinationArray重叠,则此方法的行为就像sourceArray的原始值在覆盖destinationArray之前保存在临时位置一样。