马上加入IBC程序猿 各种源码随意下,各种教程随便看! 注册 每日签到 加入编程讨论群

C#教程 ASP.NET教程 C#视频教程程序源码享受不尽 C#技术求助 ASP.NET技术求助

【源码下载】 社群合作 申请版主 程序开发 【远程协助】 每天乐一乐 每日签到 【承接外包项目】 面试-葵花宝典下载

官方一群:

官方二群:

C#语言学习:数组(Array)

  [复制链接]
查看11279 | 回复14 | 2013-3-20 16:17:56 | 显示全部楼层 |阅读模式
      上午看到原道楠的帖子,感概颇深。作为论坛中的一员,我认为自己应该做的就是能够写出更多,更好的帖子,将论坛活跃起来,使更多的人都能参与进来。这是对其最大的理解和支持。再一次感谢原道楠!
      关于数组的理解,虽然是大家在学习的时候最先接触的,但是应该是平时用到的比较少的(相对于List等而言)。为什么会是这样呢?可能最主要的原因就是数组在初始化的过程中必须要声明大小,在这一点上限制的比较死。
一.  数组的声明和初始化
      数组的声明很简单,比如我们想要声明一个整型数组,可以直接这样写 int[] myArray.
      初始化就需要用到new,而且必须同时给出数组的大小 myAyyay = new int[5];这时候内存就开辟了一段空间,来存储5个整型值。默认值为0.
      声明和初始化可以写在一起。上面的例子就可以写成 int[] myArray = new int[5];同样存储的是5个0.在初始化的时候也可以给定其他的值, 比如 int[] myArray = new int[5]{1, 2, 3, 4, 5};注意: 后面的个数一定要和给定的大小是一样的,否则就会报错。如果没有给定数组的大小,编译器可以根据后面初始化的值得个数自己推断,这样也是可以的。所以上面的也可以写成
int[] myArray = new int[] {1, 2, 3, 4, 5}; 或是更简单的 int[] myArray = {1, 2, 3, 4, 5};但是使用{....}的这种形式只能在初始化的时候使用,当给数组进行初始化之后就不能使用了。比如 int[] myArray = new int[5]; myArray = {1, 2, 3, 4, 5};这样就会报错。如果希望在初始化之后赋值,只能用for语句了。
二. 获取数组的值及给数组赋值
     数组已经进行了int类型的索引,所以可以通过[index]来获取值。注意: index是从0开始的。如果index超过了数组的长度,就会在运行时报IndexOutOfRangeException的错误。给数组的某项赋值,也可以通过索引来进行赋值。如果需要给整个数组赋值,就需要用到for循环了 for(int i = 0; i < myArray.Length; i++){ ... }。
三. 一个容易答错的问题 : 数组是引用类型。及时声明的是int[],也是引用类型。
四. Array类型
     当我们声明一个数组的时候,已经隐式继承自 Array。所以我们需要对这个类进行一些介绍
     public abstract class Array : ICloneable, IList, ICollection, IEnumerable{ ... }(引自 MSDN)。
     我们创建的数组都继承自 Array。所以可以直接用到Array的一些属性和方法。比如常用的Length,索引。还有通过Array所实现的接口,我们可以对创建的数组进行迭代,复制以及一些其他的方法
关于数组的介绍大概就这些,一些比较偏僻的知识就不过多的介绍了。上面说了数组的硬伤是初始化的时候就需要固定大小,从而造成我们在使用过程中的不便。但是数组却有List的对象没有的优势:速度。所以在能够使用数组的情况下,还是可以使用数组的。
ibcadmin | 2013-3-20 23:44:54 | 显示全部楼层
让我很感动啊 呵呵 要是论坛上的人 都能跟你一样 就好了
C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
Mrbinggo | 2013-3-21 11:13:11 | 显示全部楼层
表示目前还没有发帖的水平啊,理解不是很深刻,没底气啊 哈哈哈 !
hebutyll | 2013-3-21 11:19:18 | 显示全部楼层
Mrbinggo 发表于 2013-3-21 11:13
表示目前还没有发帖的水平啊,理解不是很深刻,没底气啊 哈哈哈 !

其实也不需要多少知识,把自己想到的,写出来就行了
IoveBC | 2013-3-21 12:15:35 | 显示全部楼层
我还没有这个实力,不过我有了这个实力之后我一定会发发帖子来帮助大家的。。。。
不过,现在我还是好好学学吧
Mrbinggo | 2013-3-22 10:12:02 | 显示全部楼层
hebutyll 发表于 2013-3-21 11:19
其实也不需要多少知识,把自己想到的,写出来就行了

OKOK,先多看看咯,目前还是接触的有点少勒!哈哈
qzuser | 2013-3-30 09:12:36 | 显示全部楼层
本着学习的心
chao2332601 | 2013-6-16 03:33:24 | 显示全部楼层
谢谢分享!!!
绿水长流 | 2013-10-21 16:44:00 | 显示全部楼层
谢谢楼主分享!!!!
绿水长流 | 2013-10-21 16:45:32 | 显示全部楼层
myAyyay    第七行,这算错别字吧。
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则