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
;
}
简单吧!!
查看全文
相关阅读:
React antd的select框的onchange事件 只能点击一次 如果想选中的值 还可以被点击 就用onselect事件
formatTime.js
typeScript
React react-router在url参数不同的情况下跳转页面不更新
React 组件
三、猜字符小游戏
二、Java学习之方法
Java学习之数组
JavaWeb的学习--第五天 javascript03
JavaWeb的学习--第四天 javascript02
原文地址:https://www.cnblogs.com/adam/p/1165282.html
最新文章
DataRow 点不出 Select
未能正确加载“EditorPackage”包(转)
使用.NET向webService传double、int、DateTime 服务器得到的数据时null的问题(转http://blog.csdn.net/slimboy123/article/details/4366701)
jquer文字闪烁简单实现
sql2008升级到r2提示:检查当前是否正确配置了报表服务器、数据库服务器是否正在运行以及您是否有权访问
ASP.NET JSON(转http://www.360doc.com/content/14/0615/21/18155648_386887590.shtml)
MD5解密
sql server2000中使用convert来取得datetime数据类型样式(转)
VS2010 发布网站时文件丢失解决办法
6.ListView
热门文章
5. repeater图片放大
4. Repeater 实例2
3.Repeater 绑定数据例子
2.数据显示控件的一些事件
1.Repeater控件
css 背景图片 铺满屏幕 小手
Vue 表情包组件
Vue 粘贴复制功能 vue-clipboard2
Vue webpack配置基础文件详解
yield call()
Copyright © 2011-2022 走看看