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
;
}
简单吧!!
查看全文
相关阅读:
LeetCode18. 四数之和
15. 三数之和
LeetCode202. 快乐数
LeetCode1. 两数之和
LeetCode349. 两个数组的交集
LeetCode242. 有效的字母异位词
VSCode运行时弹出powershell
关于cin, cin.get(), getchar(),getline()的字符问题
剑指 Offer 27. 二叉树的镜像
BFS zoj 1649
原文地址:https://www.cnblogs.com/adam/p/1165282.html
最新文章
第17集 宏的概念与应用介绍
第16集 生成BOM清单标签导出
第15集 EPLAN中线号放置
第14集 端子导航器和电缆导航器和报表的使用
第13集 创建图框封页并完善信息
第12集 控制回路的绘制
第11集 PLC输入与输出控制
第10集 绘制PLC硬件总览(显示网络拓扑图)
第9集 直流24V电源的分配
面试题42: 连续子数组的最大和(C++)
热门文章
面试题10- II:青蛙跳台阶问题(C++)
面试题29:顺时针打印矩阵(C++)
第一部分 基本概念
面试题25:合并两个排序的链表(C++)
面试题57: 和为s的两个数字(C++)
876:链表的中间节点(C++)
945:使数组唯一的最小增量(C++)
面试题24:反转链表(C++)
365:水壶问题(C++)
LeetCode454. 四数相加 II
Copyright © 2011-2022 走看看