我想知道用C#进行浅拷贝的最快方法是什么?我只知道有两种方法可以进行浅拷贝:

  • MemberwiseClone
  • 逐一复制每个字段(手动)

  • 我发现(2)比(1)快。我想知道是否还有另一种进行浅层复制的方法?

    最佳答案

    这是一个复杂的主题,具有许多可能的解决方案,并且每种解决方案都各有利弊。有一篇很棒的文章here,概述了用C#制作副本的几种不同方法。总结一下:

  • 手动克隆
    乏味,但控制水平很高。
  • 用MemberwiseClone克隆
    仅创建浅拷贝,即对于引用类型字段,原始对象及其克隆引用同一对象。
  • 使用反射克隆
    默认情况下为浅拷贝,可以重写以进行深拷贝。优势:自动化。缺点:反射慢。
  • 序列化克隆
    简单,自动化。放弃一些控制,序列化是最慢的。
  • 使用IL克隆,使用扩展方法克隆
    更高级的解决方案,并不常见。
  • 关于c# - 在C#中进行浅拷贝的最快方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/966451/

    10-12 15:55