数组的Clone方法

 public void Test()
 {
 var arr1=new[]{1,2,3};
  var arr2 = arr1;
  var arr3 = (int[])arr1.Clone(); //浅拷贝
  arr1[0] = 4;
  //arr2[0]已改变为4,arr3[0]未改变

  var arr4 = new[] { new Person(),new Person(),new Person() };
  var arr5 = arr4;
  var arr6 = (Person[])arr4.Clone();
  arr4[0].Id = 2;
  // //arr5[0].Id已改变为"2",arr6[0].Id由于Person是引用类型,那么浅拷贝后与原对象指向的堆中的数据相同,故而,也已改变为2
}

public class Person
{
  public int Id { get; set; }
}

 

posted @ 2013-07-11 10:13  瓜王  阅读(2702)  评论(0编辑  收藏  举报