gpt4 book ai didi

c# - 在 C# : deep or shallow copy? 中实现 ICollection.CopyTo

转载 作者:太空狗 更新时间:2023-10-30 01:03:06 24 4
gpt4 key购买 nike

我正在编写一个实现 IDictionary 的自定义类,但我不确定如何处理 CopyTo。应该只将每个元素复制到目标数组(浅复制),还是应该复制/克隆每个元素然后将其放入目标数组(深复制)?

最佳答案

实现未由契约(Contract)定义,但是所有通用集合似乎都进行浅拷贝(参见 http://referencesource.microsoft.com/#q=List.CopyTo )。这是有道理的,因为没有定义的方法来深度复制任何 object,这将是 CopyTo 实现的一部分。

这取决于你的场景,如果你根本不打算使用这个方法,考虑不实现它并抛出一个NotSupportedException。如果其他人将使用您的集合,请实现浅拷贝以与标准 .NET 库保持一致。如果您需要深层复制方法,请将其添加为单独的方法(可能通过实现 ICloneable)。

关于c# - 在 C# : deep or shallow copy? 中实现 ICollection.CopyTo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30722058/

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