方法有
构造函数,实现ICloneable接口,自定义copy方法等。
问题:
(1)实现System.ICloneable接口和自己定义一个mycopy方法最后会有什么不同。
(2)如何避免另一个引用改变值的问题。例如设想方案如下:
《方案1》所有自定义的类都实现ICloneable,所有复制操作统一使用clone()方法。
《方案2》所有自定义的类都实现一个用于拷贝的构造函数,所有复制操作统一使用构造函数。那么构造函数的参数应该是怎么样的?有的时候构造函数某些参数会难以生成,造成大量冗余代码。
这些方案会有什么不利的地方???
构造函数,实现ICloneable接口,自定义copy方法等。
问题:
(1)实现System.ICloneable接口和自己定义一个mycopy方法最后会有什么不同。
(2)如何避免另一个引用改变值的问题。例如设想方案如下:
《方案1》所有自定义的类都实现ICloneable,所有复制操作统一使用clone()方法。
《方案2》所有自定义的类都实现一个用于拷贝的构造函数,所有复制操作统一使用构造函数。那么构造函数的参数应该是怎么样的?有的时候构造函数某些参数会难以生成,造成大量冗余代码。
这些方案会有什么不利的地方???
解决方案 »
- Linq to Entities返回值
- 【十万火急】C#操作GSM Modem
- C#连接SQLServer时报错
- 选项卡控件tabcontrol 怎么做TT浏览器那种显示收藏夹的侧边栏按钮
- 密码输入三次错误, 账号还是不冻结.. 求助!
- ListView的滚动条问题,已经有人问过很多次了,但还解决不了,小弟再麻烦大家
- 请问c#可以做实时控制吗?谢谢~~~
- 一道笔试题,不知道咋做?请大家帮帮忙
- 为什么我从VS2005复制到IIS中的网站无法正常访问?
- Enterprise Library 3.0 DataAccess Block介绍(原创)
- 这样的查询语句该怎么写?
- 使用VS2005的“附加到进程”方式调试的时候,VS2005死掉,系统要求发送错误报告……实在解决不了啦
{
public string strC;
public int intC; public C()
{
strC = "";
intC = "";
} //复制构造体
public C(C c) : this()
{
strC = c.strC;
intC = c.strC;
}
} class D
{
public string strD;
public int intD;
public C objC; public D()
{
strD = "";
intD = 0;
} //复制构造体
public D(D d) : this()
{
strD = d.strD;
intD = d.intD;
objC = new C(d.objC);
}
}
class C
{
private string strC;
private int intC; public C()
{
strC = "";
intC = 0;
} //复制构造体
public C(C c) : this()
{
strC = c.strC;
intC = c.intC;
}
} class D
{
private string strD;
private int intD;
private C objC; public D()
{
strD = "";
intD = 0;
objC = null;
} //复制构造体
public D(D d) : this()
{
strD = d.strD;
intD = d.intD;
objC = new C(d.objC);
}
}