复制数组
因为数组是引用类型,所以将一个数组变量赋予另一个数组变量,就会得到两个指向同一数组的变量。而复制数组,会使数组实现ICloneable 接口。这个接口定义的Clone()方法会创建数组的浅副本。如果数组的元素是值类型,就会复制所有的值,int intArray1 = {1, 2};int intArray2 = (int[])intArray1.Clone();
如果数组包含引用类型,则不复制元素,而只复制引用。 显示了变量beatles 和beatlesClone,其中beatlesClone 是通过在beatles 上调用Clone()方法来创建的。beatles 和beatlesClone 引用的Person对象是相同的。如果修改beatlesClone 中一个元素的属性,就会改变beatles 中的对应对象。
Person[] beatles = {new Person("John", "Lennon"),new Person("Paul", "McCartney"),};Person[] beatlesClone = (Person[])beatles.Clone();
除了使用Clone()方法之外,还可以使用Array.Copy()方法创建浅副本。但Clone()方法和Copy()方法有一个重要区别:Clone()方法会创建一个新数组,而Copy()方法只是传送了阶数相同、有足够元素空间的已有数组。
浙公网安备 33010602011771号