>实现.net
中对象的深副本>本文解决了在.NET框架内创建对象的深拷贝的挑战,提供了与Java固有的深复制功能相当的解决方案。
解决方案:
>通用实用方法提供了一种直接的深层复制方法:
<code class="language-csharp">public static T DeepClone<T>(this T obj) { using (var ms = new MemoryStream()) { var formatter = new BinaryFormatter(); formatter.Serialize(ms, obj); ms.Position = 0; return (T)formatter.Deserialize(ms); } }</code>批判性考虑:
>至关重要的是要承认,该方法中使用的
实现详细信息:BinaryFormatter
机制:
[Serializable]
<code class="language-csharp">using System.Runtime.Serialization.Formatters.Binary; using System.IO;</code>
序列化: 序列化,将其存储在存储器流中。 圆形引用可能会导致例外。
对象结构内的BinaryFormatter
以上是如何在.NET中深层复制对象?的详细内容。更多信息请关注PHP中文网其他相关文章!