前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家!人工智能学习网站
前言:
大家好,我是上位机马工,硕士毕业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控件从入门到精通》