C#Array.Copy方法的作用

本文详细介绍了Java中数组的深拷贝和浅拷贝概念,通过实例代码展示了它们的区别。当使用赋值操作符或Array.copy()方法时,数组发生浅拷贝,改变其中一个副本会影响另一个。而使用System.arraycopy()或Array.copyOf()方法进行拷贝时,可实现深拷贝,确保两个数组相互独立。了解这些基础知识对于避免不必要的错误至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家人工智能学习网站

前言:

大家好,我是上位机马工,硕士毕业4年年入40万,目前在一家自动化公司担任软件经理,从事C#上位机软件开发8年以上!我们在C#开发中经常对一个数组的数据进行拷贝,本文就是介绍如何实现这个功能。

1、数组的浅拷贝

代码:


int[] array1 = new int[] { 1, 2, 3, 4, 5 };
        int[] array2 = array1;
        array2[0] = 100;
        Console.WriteLine(array1[0]);

输出:

100

说明:
数组是引用类型,改变array2的值也就改变了array1的值,array2和array1引用的对象相同。

2、数组的深拷贝

代码:

  int[] array3 = new int[] { 1, 2, 3, 4, 5 };
        int[] array4=new int[5];
         Array.Copy(array3, array4,array3 .Length );
        array4[0] = 100;
        Console.WriteLine(array3[0]);

输出:

1

说明:
调用Array的拷贝方法以后,array3和array4引用的对象不同,相当于在内存里面重新开辟了一个新的内存用于存储新的数组数据,所以改变array4的值对array3没有影响。

3、深拷贝指定起始拷贝索引和拷贝长度

代码:

  int[] array5 = new int[] { 1, 2, 3, 4, 5 };
        int[] array6 = new int[3];
        Array.Copy(array5,0, array6,0, array6.Length);
        array6[0] = 100;
        Console.WriteLine(array5[0]);

输出:

3

说明:
将一个数组的元素拷贝给另一个数组时,可以指定原始数组开始拷贝的索引以及目标数组开始的索引,以及总的需要拷贝的长度,且是深拷贝,改变其中一个数组并不能改变另一个数组的值。

Array.Copy的参数含义如下:
第1个参数:被拷贝的数组
第2个参数:从被拷贝的数组第几个元素开始拷贝
第3个参数:目标新数组
第4个参数:将数据拷贝到目标新数组的第几个数据开始
第4个参数:拷贝数据的长度

作者介绍

马工2017年硕士毕业,一直从事上位机软件开发工作,在我工作的第四年年薪突破了40万+,为了帮助跟我一样从底层出身的上位机软件工程师早日达到高级工程师的水平,早日找到30万+的工作,我根据多年项目经验,总结出了一系列可直接用于项目的C#上位机实战教程推荐给大家,目前在CSDN已经超过一千人订阅,如果你不甘贫庸,想像我一样早日拿到高薪,马工强烈推荐你早日学这套教程,雷军曾说这个世界上有99%的问题别人都遇到过,你要做的不是闷头干!而是找这个领域的专家问一下,这是最快速提升自己的方法!

年入30万+C#上位机实战必备教程推荐(点击下方链接即可访问文章)

1、《C#串口通信从入门到精通》
2、《C#与PLC通信从入门到精通 》
3、《C# Modbus通信从入门到精通》
4、《C#Socket通信从入门到精通 》
5、《C# MES通信从入门到精通》
6、《winform控件从入门到精通》

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

上位机马工

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值