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