举例如下
data0001 info1 =new data0001();//new第一个数据层对象
info1.id=1;//测试赋值为1
data0001 info2=new data0001();//new第二个数据层对象
info2=info1;//将对象1赋给对像2
info2.id+=1;//改变对象2的值
Response.Write(info2.id.ToString());//结果=2。
Response.Write(info1.id.ToString());//结果也为2了。
我想得到的结果是info1.id仍为1,应该不变才对。
data0001 info1 =new data0001();//new第一个数据层对象
info1.id=1;//测试赋值为1
data0001 info2=new data0001();//new第二个数据层对象
info2=info1;//将对象1赋给对像2
info2.id+=1;//改变对象2的值
Response.Write(info2.id.ToString());//结果=2。
Response.Write(info1.id.ToString());//结果也为2了。
我想得到的结果是info1.id仍为1,应该不变才对。
info2=info1;是将内存单元地址...
现在的问题就是,必须要把info1里的所有字段赋给info2,我知道info2.id=info1.id;就达到info1.id=1; 但info1里面有70多个字段啊,代码都要写一大堆啊,有没有办法一次性赋给info2呢
{
private String _name; public Product(String name)
{
_name = name;
} public string Name
{
get { return _name; }
set { _name = value; }
}public object Clone()
{
return MemberwiseClone(); //调用基类的默认实现即可,它会用反射把当前对象内所有的值类型进行拷贝的
}
}Product product1 = new Product("abc");
Product product2 = (Product) product1.Clone();
product2.Name = "New Value";
Console.WriteLine(product1.Name);
Console.WriteLine(product2.Name);
public class DATA0001Info : ICloneable //实现Clone接口
{
public object Clone()
{
return this.MemberwiseClone(); //返回浅clone方法
}
}