网站建设优点,dw网页制作素材+教程,社区网站搭建,企业内部网站模板文章目录 13.1 数组13.1.1 定义13.1.2 重要细节 13.2 数组的类型13.3 数组是对象13.4 一维数组和矩形数组13.5 实例化一维数组或矩形数组13.6 访问数组元素#xff08;*#xff09;13.7 初始化数组13.7.1 显示初始化一维数组13.7.2 显示初始化矩形数组13.7.3 初始化矩形数组的… 文章目录 13.1 数组13.1.1 定义13.1.2 重要细节 13.2 数组的类型13.3 数组是对象13.4 一维数组和矩形数组13.5 实例化一维数组或矩形数组13.6 访问数组元素*13.7 初始化数组13.7.1 显示初始化一维数组13.7.2 显示初始化矩形数组13.7.3 初始化矩形数组的语法点*13.7.4 快捷语法13.7.5 隐式类型数组13.7.6 综合内容* 13.8 交错数组13.8.1 声明交错数组13.8.2 快捷实例化13.8.3 实例化交错数组13.8.4 交错数组中的子数组* 13.9 比较矩形数组和交错数组13.10 foreach 语句13.10.1 迭代变量是只读的13.10.2 foreach 语句和多维数组 13.11 数组协变13.12 数组继承的有用成员13.13 比较数组类型13.14 数组与 ref 返回和 ref 局部变量 13.1 数组
13.1.1 定义
元素数组的独立数据项。秩/维度数组的维度数称作秩。维度长度每个维度方向的位置个数。数组长度所有维度中的元素总数。
13.1.2 重要细节
数组一旦创建就固定了。C# 不支持动态数组。数组索引号从 0 开始。
13.2 数组的类型
C# 提供以下两种类型的数组 一维数组。 多维数组。 矩形数组。 某个维度的所有子数组长度相同。仅使用一组方括号表示。 交错数组。 每个子数组都是独立的。可以有不同长度的子数组。每一个维度使用一个方括号表示。 图13.1 一维数组、矩形数组及交错数组 13.3 数组是对象
数组是继承了 System.Array 类型的对象具有 BCL 基类中很多有用的成员
Rank属性返回数组的维度。Length属性返回数组的长度。 图13.2 数组的结构 13.4 一维数组和矩形数组
声明一维数组或多维数组
在类型和变量名称之间使用方括号声明数组方括号内的逗号是秩说明符指定了数组的维度数秩 逗号数 1。
可以有任意多个秩说明符逗号。不能在数组类型区域中放数组维度长度维度长度不是类型的一部分。数组声明后维度就固定了。而维度长度直到数组实例化时才决定。 图13.3 数组的声明 13.5 实例化一维数组或矩形数组
使用 new 运算符实例化 图13.4 声明和实例化数组 13.6 访问数组元素*
13.7 初始化数组
数组被创建后每个元素被自动初始化为类型的默认值。
整型0。浮点型0.0。布尔型false。引用类型null。
13.7.1 显示初始化一维数组
使用初始化列表进行初始化
初始值以逗号分隔封闭在大括号内。不必输入维度长度编译器可以进行推断。 图13.5 一维数组的显示初始化 13.7.2 显示初始化矩形数组
每个初始值向量必须封闭在大括号内。每个维度必须嵌套并封闭在大括号内。每个维度的初始化列表和组成部分也使用逗号分隔。 图13.6 初始化矩形数组 13.7.3 初始化矩形数组的语法点*
13.7.4 快捷语法
可以省略语法的数组创建表达式部分只提供初始化部分 图13.7 声明、创建以及初始化数组的快捷语法 13.7.5 隐式类型数组
由于智能的编译器可以使用 var 关键字进一步简化声明隐式数组 图13.8 使用 var 声明隐式类型数组 13.7.6 综合内容*
13.8 交错数组
13.8.1 声明交错数组
和矩形数组一样数组类型声明部分不能包含维度长度。 图13.9 声明交错数组 13.8.2 快捷实例化
可以快捷创建顶层数组的声明 图13.10 快捷最高级别实例化 13.8.3 实例化交错数组
交错数组的初始化不能在一个步骤中完成需要以下步骤
实例化顶层数组。分别实例化每一个子数组。 图13.11 创建二维交错数组 13.8.4 交错数组中的子数组*
13.9 比较矩形数组和交错数组
图 13.12 展示了保存 9 个整数的矩形数组和交错数组。矩形数组只有单个数组对象而交错数组有 4 个数组对象。 图13.12 比较矩形数组和交错数组的结构 CIL 中一维数组有特定的性能优化指令而矩形数组没有。因此有时使用一维数组的交错数组比矩形数组更高效。
13.10 foreach 语句
13.10.1 迭代变量是只读的
对于值类型数组不能改变数组元素。对于引用类型数组不能改变引用可以通过迭代变量改变数据。
13.10.2 foreach 语句和多维数组 矩形数组 维度处理次序为从右向左每个维度从 0 开始递增。递增满时重置为 0左方维度索引递增。 交错数组 必须为每一个维度使用独立的 foreach 语句。
13.11 数组协变
**数组协变**即使某个对象不是数组的基类型也可以把它赋值给数组元素。发生的条件如下
为引用类型数组。在复制对象和数组基类型之间有隐式或显示转换。 图13.13 数组出现协变 13.12 数组继承的有用成员 表13.1 数组继承的一些有用成员 13.13 比较数组类型 表13.2 比较数组类型的总结 13.14 数组与 ref 返回和 ref 局部变量 图13.14 数组 ref 返回与局部变量示例