版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第5章 数组、枚举与结构,本章讲述的主要内容 5.1 数组概述 5.2 声明与访问数组 5.3 控件数组 5.4 数组的属性与方法 5.5 自定义数据类型,5.1 数组概述,5.1.1 数组与数组元素 在C# 2005中,把一组具有同一名字、不同下标的下标变量称为数组。例如,A6中的A称为数组名,6是下标。一个数组可以含有若干个下标变量(或称数组元素),下标也叫索引(Index),用来指出某个数组元素在数组中的位置。数组中第一个元素的下标默认为0,第二个元素的下标为1,依次类推。所以数组元素的最大下标比数组元素个数少1,即如果某一数组有n个元素,则其最大下标为n-1。例如,一个含有10个元素的
2、数组A,其第一个元素为A0,最后一个元素为A9。数组的下标必须是非负值的整型数据。,5.1 数组概述,5.1.2 数组的类型 在C# 2005中,数组属于引用类型,也就是说在数组变量中存放的是对数组的引用,真正的数组元素数据存放在另一块内存区域中。 数组元素在内存中是连续存放的,这是数组元素用下标表示其在数组中位置的根据。 C# 2005中的数组类型可以对应任何数据类型,即数组可以是基本数据类型,也可以是类类型,例如,可以声明一个文本框(TextBox)类型的数组。 C# 2005通过.NET框架中的System.Array类来支持数组,因此,可以使用该类的属性与方法操作数组。,5.2 声明与
3、访问数组,5.2.1 声明和访问一维数组 因为数组是引用类型的变量,所以声明数组的过程与声明类对象相同,包含两个环节,即声明数组变量与数组变量的实例化。 1. 声明一维数组 声明一维数组的一般格式为: 类型名称 数组名; 例如: int A; 上述语句声明了一个名为A的整型数组。 数组在声明后必须实例化才可以使用。实例化数组的格式为: 数组名称 = new 类型名称无符号整型表达式;,5.2 声明与访问数组,5.2.1 声明和访问一维数组 2. 访问数组 访问数组就是对数组中的元素进行读写操作,对数组中元素的访问分为,对单个元素的访问与对所有元素的访问两种情况。 对数组元素的访问最常见的两种形
4、式是为数组元素赋值和用数组元素的值为其他变量赋值,即对数组元素的读写操作。 使用数组名与下标(索引)可以唯一确定数组中的某个元素,从而实现对该元素的访问。例如: int x = 4, y = 5; int A = new int31,2,3; x = A0; /使用数组A的第1个元素的值为其他变量赋值 A1 = y;/为数组A的第2个元素赋值,5.2 声明与访问数组,5.2.1 声明和访问一维数组 2. 访问数组 访问数组就是对数组中的元素进行读写操作,对数组中元素的访问分为,对单个元素的访问与对所有元素的访问两种情况。 对数组元素的访问最常见的两种形式是为数组元素赋值和用数组元素的值为其他变
5、量赋值,即对数组元素的读写操作。 使用数组名与下标(索引)可以唯一确定数组中的某个元素,从而实现对该元素的访问。例如: int x = 4, y = 5; int A = new int31,2,3; x = A0; /使用数组A的第1个元素的值为其他变量赋值 A1 = y; /为数组A的第2个元素赋值 例5-1,5.2 声明与访问数组,5.2.1 声明和访问一维数组 3. foreach循环语句 C# 2005专门提供了一种用于遍历数组的foreach循环语句。所谓“遍历”是指依次访问数组中所有元素。 foreach循环语句的格式为: foreach(类型名称 变量名称 in 数组名称) 循
6、环体语句序列 ,例 1. 产生6个随机整数,借助于数组对这一组数字进行从小到大排序。 2.产生6个随机整数存放于数组中,然后将数组倒序排列并显示在网页上。 课堂练习: 产生10个1到50之间的随机整数放在数组中,然后求这个数组的最大值与最小值,5.2 声明与访问数组,5.2.2 声明和访问多维数组 在多维数组中,比较常用的是二维数组,声明二维数组与声明一维数组格式类似。例如: int , A = new int2,21,2,3,4; 声明多维数组时,用逗号表示维数,一个逗号表示二维数组,两个逗号表示三维数组,依次类推。 上例中的“int , A”表示声明一个二维数组;“new int2,2”表
7、示实例化数组时,该数组为一个两行两列的数组,其中逗号左边的值为行数,逗号右边的值为列数;为多维数组指定初始化值时,每一行的值须用大括号括起来,行与行之间用逗号分隔。 例5-2,例 利用二维数组制作通讯录,通讯录中保存姓名、电话、QQ等信息,在网页中可以通过姓名查找对应的通讯信息。 课堂练习: 随机产生一个4行4列的二维数组,计算二维数组各元素的和并显示在网页上。,5.3 控件数组,5.3.1 创建控件数组 在VS 2005中无法使用可视化的方法直接创建控件数组,只能在设计视图中添加独立的同类控件,而后通过代码创建需要的控件数组。 1. 声明控件数组 声明控件数组的语法格式如下: 控件类名 数组
8、名 = new 控件类名n; 其中,控件类名为各控件在工具箱中的名称,如Label、Button、TextBox等等;数组名为用户指定的数组名称;n为数组包含的元素个数,5.3 控件数组,5.3.1 创建控件数组 2. 为控件数组赋值 为控件数组赋值的方法与为普通数组赋值的方法类似,可以在声明数组时赋值,也可以在声明后单独赋值。 例如: TextBox txtArray = new TextBox4TextBox1, TextBox2, TextBox3, TextBox4,; 或: TextBox txtArray = new TextBox4;txtArray0 = TextBox1; t
9、xtArray1 = TextBox2; txtArray2 = TextBox3; txtArray3 = TextBox4;,5.3 控件数组,5.3.2 使用控件数组 控件数组创建并赋值后,可以象对普通数组那样通过循环操作数组元素,这对简化代码编写是十分有意义的。 例5-3,5.3 控件数组,5.3.3 多控件共享单一事件 在程序设计过程中常会遇到页面中同类控件的同类事件问题。例如,在【例4-1】中设计的“简单算术计算器”中有表示、的4个按钮控件,用户单击按钮采用相应的计算方法。认真阅读程序代码后,可以看到计算方法实际上只有一个运算符不同,其他部分完全相同。此时,若使用多控件共享单一事件
10、的方法,可大幅度减少代码的编写量,使程序更明了易读。 1. 在源视图中统一事件名称 2. 编写共享事件过程 例5-4,5.4 数组的属性与方法,5.4.1 数组的常用属性 1. 数组的Length属性 数组的Length属性是数组对象的一个只读属性,该属性的值在数组实例化时被初始化,表示数组包含多少个元素。 2. IsReadOnly属性 数组具有IsReadOnly属性,该属性可以设置数组或数组列表中的元素是否为只读的。 在创建数组时,IsReadOnly属性值默认为false(假),即数组中的元素值允许被读取和修改。如欲保护元素值不被修改,则可以设置该属性值为true(真)。一旦将数组设置
11、为只读的,则任何对数组元素进行修改的操作都将产生错误。,5.4 数组的属性与方法,5.4.2 数组的常用方法 1. Clone与CopyTo方法 克隆(Clone)与拷贝(CopyTo)方法均可以实现数组之间的数据复制。 Clone方法的语法格式为: 目标数组名称=(数组类型名称)源数组名称.Clone( ); 2. Array.Sort(排序)方法 使用数组的Sort方法可以将数组中的元素按升序重新排列。 Sort方法的语法格式为: Array.Sort(数组名称);,5.4 数组的属性与方法,5.4.2 数组的常用方法 3. Array.Reverse(反转)方法 数组的Reverse(反
12、转)方法,顾名思义是用于数组元素排列顺序反转的方法。将该方法与Sort方法结合,可以实现降序排序。 Reverse方法的语法格式为: Array.Reverse(数组名称,起始位置,反转范围); 其中,“起始位置”是指从第几个数组元素开始进行反转;“反转范围”是指有多少数组元素参与反转操作。,5.5 自定义数据类型,5.5.1 结构类型 1. 定义结构 结构的定义需要使用struct关键字,定义格式如下: struct 结构类型名称 public 类型名称1 结构成员名称1; public 类型名称2 结构成员名称2; ,5.5 自定义数据类型,5.5.1 结构类型 2. 声明结构变量 定义结
13、构后,一个新的数据类型就产生了,可以像使用基本数据类型那样,用结构来声明变量。 例如: employee tom;/声明一个结构变量tom 也可以在声明结构变量的同时,为结构变量赋值,为结构变量赋值实质上是为结构变量中的成员赋值,但由于结构变量常常包含不止一个结构成员,所以在声明时为结构变量赋值需要使用大括号,各项值之间用逗号分隔。例如: employee tom = 汤姆,true,1980,5,263500;,5.5 自定义数据类型,5.5.1 结构类型 3. 访问结构变量 一般对结构变量的访问都转化为对结构中的成员的访问,由于结构中的成员都依赖于一个结构变量,因
14、此使用结构中的成员必须指出访问的结构变量。方法是在结构变量和成员之间通过运算符“”连接在一起。即: 结构变量名.成员名 例5-5,5.5 自定义数据类型,5.5.2 枚举类型 1. 定义枚举类型 定义枚举类型使用关键字enum,定义枚举类型的一般格式为: enum 枚举类型名称 符号常量1, 符号常量2, ,5.5 自定义数据类型,5.5.2 枚举类型 2. 声明与访问枚举变量 声明枚举变量与声明基本类型变量的格式相同,例如: SolarSystem S;/声明一个枚举变量S 可以在声明枚举变量的同时为变量赋值,枚举变量的值,必须是枚举成员,枚举成员需要用枚举类型引导,例如: SolarSystem S= SolarSystem.Sun; 对枚举变量的访问如同对基本类型变量的访问,例如: SolarSystem S = Solar
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年国际贸易从业知识测试及考点解析
- 2026年老弱病残病人特殊护理要求题目
- 九年级化学上册教案改后
- 超轻黏土社团实施方案
- 简单高效的对接工作方案
- 营运车辆防治工作方案
- 当代田园乡村建设方案
- 医院超市经营实施方案
- 海上平台模块安装施工方案
- 高中减负工作实施方案
- 住院医师岗位轮转制度
- 2026年江苏南京市中小学教师招聘考试试题解析及答案
- 中国戏曲学院招聘笔试真题
- 临床急诊四级预检分诊标准与高危患者优先解决策略
- 2025年海南省高考生物试卷真题(含官方答案)
- 2025至2030中国征信行业信用修复服务市场发展研究报告
- JTG-T 3841-2026 公路工程建设项目安全生产费用清单及计量规范
- 喷塑考核制度
- 硫化氢培训教学课件
- 中小学影视教育2025年度报告
- 时代赞歌大单元教学设计 2025人教版美术七年级下册
评论
0/150
提交评论