日期:2011-06-11  浏览次数:20473 次

C#中有两种类型变量,一种是值类型变量,一种是引用类型变量。对于前者,copy是属于全盘复制;
而对于后者,一般的copy只是浅copy,相当于只传递一个引用指针一样。因此对于后者进行真正copy的时候,也是最费事的,具体的说,必须为其实现ICloneable接口中提供的Clone方法,示例代码如下:

public class Test
{    
    
public class Person : ICloneable
    {
        
public int ID;
        
public int age;
        
public void Show()
        {
            Console.WriteLine(
"ID:{0} 年龄:{1}",ID, age);
        }
        
public object Clone()
        {
            Person newPerson 
= new Person();
            newPerson.ID 
= this.ID;
            newPerson.age 
= this.age;      
            
return newPerson;
        }
    }
    
public static void ShowPersons(Person[] persons)
    {
        
for (int i=0