【发布时间】:2010-12-14 16:42:04
【问题描述】:
我正在查看为其中一个类实现 ICloneable 接口的代码。
课程如下:
public class TempClass
{
String[] names;
String[] values;
}
创建了一个实现TempClass的部分类
public partial class TempClass:ICloneable
{
public Object Clone()
{
TempClass cloneClass = new TempClass();
String[] cloneNames = new String[this.names.Length - 1];
String[] cloneValues = new String[this.values.Length -1];
Array.Copy(this.names,cloneNames,this.names.Length);
Array.Copy(this.values,cloneValues,this.values.Length);
cloneClass.names = cloneNames;
cloneValues.values = cloneValues;
return cloneClass;
}
}
我想知道这是否是对对象进行深层复制的有效方法?这里引发标志的是中间结构cloneNames 和cloneValues,它们用于复制原始对象的值,并让成员变量Names 和Values 指向它,然后返回在克隆方法。
任何有关此 sn-p 的反馈将不胜感激
谢谢
【问题讨论】: