【发布时间】:2012-06-22 03:05:38
【问题描述】:
我目前正在使用 Array.Copy 来移动数组:
Array.Copy(array, 0, array, 1, array.Length - 1);
明显比使用循环要快。我知道其他语言中的类似函数(例如 memcpy)是未定义的,或者当编译器过于激进时有时会中断。在 .NET 中考虑这种安全是否合理?
【问题讨论】:
标签: c#
我目前正在使用 Array.Copy 来移动数组:
Array.Copy(array, 0, array, 1, array.Length - 1);
明显比使用循环要快。我知道其他语言中的类似函数(例如 memcpy)是未定义的,或者当编译器过于激进时有时会中断。在 .NET 中考虑这种安全是否合理?
【问题讨论】:
标签: c#
是的,它是安全的。这是documented 在这种情况下方法应该如何表现:
如果 sourceArray 和destinationArray 重叠,则此方法的行为就像在覆盖destinationArray 之前将sourceArray 的原始值保存在临时位置。
【讨论】: