zoukankan
html css js c++ java
实现深拷贝的一种方法
声明接口:
public
interface
IClone
{
T Clone
<
T
>
(T instance)
where
T :
class
;
}
建立CloneManager类实现接口:
public
class
CloneManager:IClone
{
/**/
///
<summary>
///
Clones the specified instance.
///
</summary>
///
<typeparam name="T"></typeparam>
///
<param name="instance">
The instance.
</param>
///
<returns>
A new instance of an object.
</returns>
T IClone.Clone
<
T
>
(T instance)
{
XmlSerializer serializer
=
new
XmlSerializer(
typeof
(T));
MemoryStream stream
=
new
MemoryStream();
serializer.Serialize(stream, instance);
stream.Seek(
0
, SeekOrigin.Begin);
return
serializer.Deserialize(stream)
as
T;
}
}
实际应用代码:
class
Program
{
static
void
Main(
string
[] args)
{
IClone clone
=
new
CloneManager.CloneManager();
AA ta
=
new
AA();
ta.aa
=
123
;
ta.bb
=
234
;
AA tb
=
clone.Clone
<
AA
>
(ta);
ta.aa
=
999
;
ta.bb
=
888
;
System.Console.WriteLine(ta.aa);
System.Console.WriteLine(ta.bb);
System.Console.WriteLine(tb.aa);
System.Console.WriteLine(tb.bb);
}
}
public
class
AA
{
public
int
aa
=
0
;
public
int
bb
=
0
;
}
简单吧!!
查看全文
相关阅读:
MySQL-5.6.xx-winx64 免安装版配置方法
winForm窗体最大化的设置
foreach内部做的一点事
sqlserver创建同义词
sql server 数据库创建链接服务器
文件比对工具——WinMerge
Devos病毒解决办法(转)
设计模式学习笔记-单例模式
Aspose.Word for DotNet 定位到每页,画笔 移动到某页。
Word 固定文字或签名在底部
原文地址:https://www.cnblogs.com/adam/p/1165282.html
最新文章
C#大型电商项目优化(三)——扩展性与支付
C#大型电商项目优化(二)——嫌弃EF与抛弃EF
C# 大型电商项目性能优化(一)
验证码校验的前世今生及心得体会
javascript调用ActiveX接口失败的解决方案及使用心得
支付宝即时到帐接口无法回调及其解决过程
Asp.Net MVC-4-过滤器1:认证与授权
Asp.net MVC-3-执行过程
Asp.Net MVC-02-路由
Asp.Net MVC-01-起步
热门文章
进入MVC处理通道
ASP.NET初始化流程分析2
MVC之前-ASP.NET初始化流程分析1
【关于软考】 系统集成项目管理工程师的复习
【自考】软件开发工具 03173
【自考】管理信息系统 02382
【自考】操作系统导论 022323
OleDbConnection 出现“未指定错误”
微信小程序生成携带参数的小程序码
asp.net core + angular2 的环境配置
Copyright © 2011-2022 走看看