国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

C#中深拷貝和淺拷貝的例子

2024-07-21 02:26:41
字體:
來源:轉載
供稿:網友


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; i<persons.getlength(0); i++)
        {
            persons[i].show();
        }
    }
    
static void main(string[] argv)
    {
        random rnd 
= new random(unchecked((int)datetime.now.ticks));
        person[] persons 
= new person[4];
        
for (int i=0;i<persons.getlength(0);i++)
        {
            persons[i] 
= new person();
            persons[i].id 
= rnd.next()%10;
            persons[i].age 
= rnd.next()%50;
        }
        
//打印原始數組
        console.writeline("打印原始數組");
        showpersons(persons);
        
//深拷貝
        person[] personscopied = new person[4];
        
for (int i=0;i<personscopied.getlength(0);i++)
        {
            personscopied[i] 
= (person)persons[i].clone();
        }
        
//persons.copyto(personscopied, 0);
        console.writeline("深拷貝的數組");
        showpersons(personscopied);
//      //淺拷貝
//      person[] personscloned = (person[])persons.clone();
//      console.writeline("淺拷貝的數組");
//      showpersons(personscloned);
        
//對原數組做修改
        persons[2].id += 10;
        console.writeline(
"打印修改后的原始數組");
        showpersons(persons);
        console.writeline(
"深拷貝的數組應該不改變");
        showpersons(personscopied);
//      console.writeline("淺拷貝的數組應該改變");
//      showpersons(personscloned);
    }
}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宁津县| 绥阳县| 堆龙德庆县| 武平县| 红桥区| 湘乡市| 盐城市| 内黄县| 磐石市| 依兰县| 娄烦县| 波密县| 寿宁县| 常德市| 曲麻莱县| 连山| 永定县| 白山市| 神农架林区| 瓦房店市| 张掖市| 海淀区| 长阳| 乌兰浩特市| 松溪县| 出国| 奇台县| 石屏县| 盘锦市| 边坝县| 龙泉市| 昭觉县| 霍州市| 柳州市| 平潭县| 长子县| 榆林市| 宜君县| 淳安县| 库尔勒市| 宁晋县|