C# 复制和克隆认识浅谈2

本文深入解析hashtable的浅拷贝与深拷贝机制,通过实例展示hashtable作为引用类型的特点,并介绍如何使用clone()方法进行深拷贝,避免数据共享带来的问题。此外,还讲解了将hashtable复制到一维数组的操作,提供在实际工作中的应用案例。

接上篇博文

private void Form1_Load(object sender, EventArgs e)
        {
            Hashtable ht = new Hashtable();
            GetValue(ht);
        }
        private void GetValue(Hashtable ht)
        {
            Hashtable newhash = new Hashtable();

            newhash = ht;
            newhash.Add("qq", "33");
        }

上面情况,如果窗体加载完毕之后,ht和newhash的值是相同,因为hashtable是引用类型,在调用hashtable时,将ht的指针赋值给了newhash,在newhash.Add("qq",23);

之后,ht和newhash的指针指向同一个地址,故而ht的值也变了,如果此时不需要ht变化,则可以使用clone(),

克隆:简单字面意思就是重新创造一个出来,当然这个clone()出来的是副本,指向的地址和使用的内存空间肯定不一样,这样就可以了,

 Hashtable ht = new Hashtable();
 ht.CopyTo(array,startindex);

还有这个,这个是将hashtable复制到一维数组,在具体工作中应用也比较多,

总而言之,遇到以上情况使用克隆即可,hashtable浅谈就到这里,文章简陋,语句笨拙还请见谅,欢迎斧正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值