gpt4 book ai didi

c# - Array.Copy 和 Array.ConstrainedCopy - C#

转载 作者:太空狗 更新时间:2023-10-29 20:49:34 25 4
gpt4 key购买 nike

当我读到 Array.Copy() 不提供复制成功和事实上的保证时,我正在查看 Array.cs 的源代码甚至可能破坏原始实例(如果我在这里错了,请纠正我)。为了让您安心,ConstrainedCopy () 似乎实现了相同的目的。

我的问题是:
1> 为什么有人会使用 Array.Copy() 如果它似乎不能保证数据的成功传输并且继续可能损害原始实例?事实上,所有集合类似乎都使用 Array.Copy() 来增加它们的实例大小。为什么不在这里使用 ConstrainedCopy()

2> 那么一直使用ConstrainedCopy() 的代价是多少?我假设会有更多逻辑添加到 ConstrainedCopy ()

最佳答案

Object[] objArray = { "Anakin", "Skywalker", 666 };
String[] stringArray = new String[3];
  1. Array.Copy(objArray, stringArray , 3);

    这会抛出一个无效的转换异常。即使在抛出异常之后(如果您吞下它),objArray 的前两个元素也会被复制到 stringArray。

  2. Array.ConstrainedCopy(objArray, 0, stringArray, 0, 3);

    这会抛出 System.ArrayTypeMismatchException 并且不会将任何元素复制到目标数组 (stringArray)。

关于c# - Array.Copy 和 Array.ConstrainedCopy - C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7142773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com