在.NET中如何实现深拷贝(deep copy)?
答案:2 悬赏:80 手机版
解决时间 2021-11-15 23:40
- 提问者网友:几叶到寒
- 2021-11-15 08:55
在.NET中如何实现深拷贝(deep copy)?
最佳答案
- 五星知识达人网友:平生事
- 2021-11-15 10:06
- 值类型的赋值,都是深拷贝
string类型进行的深拷贝,原因是微软的工作人员考虑到string类型在所有类型中操作的最频繁,为了提高性能,采用了深拷贝。
全部回答
- 1楼网友:枭雄戏美人
- 2021-11-15 11:10
要引入:
using System.Xml.Serialization;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
///
/// 深度复制对象
///
///
///
///
private static object Clone(T obj)
{
using (MemoryStream stream = new MemoryStream())
{
// 创建序列化器
BinaryFormatter formatter = new BinaryFormatter();
// 将对象序列化至流--obj为要复制的对象
formatter.Serialize(stream, obj);
//获取内存流中最新创建的位置
stream.Position = 0;
//返回值
return formatter.Deserialize(stream);
}
}
前提是需要序列化类
using System.Xml.Serialization;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
///
/// 深度复制对象
///
///
///
///
private static object Clone
{
using (MemoryStream stream = new MemoryStream())
{
// 创建序列化器
BinaryFormatter formatter = new BinaryFormatter();
// 将对象序列化至流--obj为要复制的对象
formatter.Serialize(stream, obj);
//获取内存流中最新创建的位置
stream.Position = 0;
//返回值
return formatter.Deserialize(stream);
}
}
前提是需要序列化类
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯