《Visual C#程序设计教程 教学课件 ppt 作者 刘先省 陈克坚第9章 数组与自定义类型》由会员分享,可在线阅读,更多相关《Visual C#程序设计教程 教学课件 ppt 作者 刘先省 陈克坚第9章 数组与自定义类型(37页珍藏版)》请在金锄头文库上搜索。
1、第1章 程序设计语言与程序设计方法 第2章 Visual C#概述 第3章 C#语法基础 第4章 顺序结构程序设计 第5章 选择结构程序设计 第6章 循环结构程序设计 第7章 面向对象编程技术 第8章 继承,第9章 数组与自定义类型 第10章 菜单、工具栏与状态栏 第11章 文件操作 第12章 数据库技术 第13章 ActiveX控件 第14章 异常处理与跟踪调试 第15章 开发Web应用程序 第16章 部署应用程序,下一页,Visual C#程序设计教程,上一页,章节目录,上一页,下一页,第9章 数组与自定义类型 9.1 数组概述 数组是一些具有相同类型的数据按一定顺序组成的序列,数组中的每
2、一个数据都可以通过数组名及唯一一个索引号(下标)来存取。所以,数组用于存储和表示既与取值有关,又与位置(顺序)有关的数据。,章节目录,上一页,下一页,9.1.1 数组与数组元素 在C#中,把一组具有同一名字、不同下标的下标变量称为数组。一个数组可以含有若干个下标变量(或称数组元素),下标也叫索引(Index),用来指出某个数组元素在数组中的位置。数组中第一个元素的下标默认为0,第二个元素的下标为1,依次类推。所以数组元素的最大下标比数组元素个数少1,即如果某一数组有n个元素,则其最大下标为n-1。数组的下标必须是非负值的整型数据。,章节目录,上一页,下一页,(1) 使用悬浮窗 缺省情况下Fla
3、shGet被设置为显示“悬浮窗”、“监视剪贴板”和监视“浏览器点击” (2) 使用快捷菜单 在带有下载文件的链接的网页中,右键单击链接文字,在弹出的快捷菜单中执行“用网际快车下载”命令。设置完毕后,单击“确定”按钮,章节目录,上一页,下一页,如果只用一个下标就能确定一个数组元素在数组中的位置,则称该数组为一维数组。也可以说,由具有一个下标的下标变量所组成的数组称为一维数组,如上述中的数组A就是一维数组。而由具有两个或多个下标的下标变量所组成的数组称为二维数组或多维数组,多维数组元素的下标之间用逗号分隔,如A0,1表示是一个二维数组中的元素。,章节目录,上一页,下一页,9.1.2 数组的类型 在
4、C#中,数组属于引用类型。 数组元素在内存中是连续存放的,这是数组元素用下标表示其在数组中位置的根据。 C#中的数组类型可以对应任何数据类型,即数组可以是基本数据类型,也可以是类类型,例如,可以声明一个文本框(TextBox)类型的数组。 C#通过.NET框架中的System.Array类来支持数组,因此,可以使用该类的属性与方法操作数组。,章节目录,上一页,下一页,9.2 声明与访问数组 9.2.1 声明与访问一维数组 声明数组的过程与声明类对象相同,包含两个环节,即声明数组变量与数组变量的实例化。 1. 声明一维数组 声明一维数组的格式为: 访问修饰符 类型名称 数组名; 例如:int A
5、;,章节目录,上一页,下一页,数组在声明后必须实例化才可以使用。实例化数组的格式为: 数组名称=new 类型名称无符号整型表达式; 例如:A=new int5; 使数组包含5个元素。声明数组过程中,声明变量与实例化变量这两个环节可以用一条语句完成。 例如:int A=new int5; 数组一旦实例化,其元素即被初始化为相应的默认值。,章节目录,上一页,下一页,指定数组元素个数的“无符号整型表达式”,可以是一个常量表达式,也可以是一个变量表达式。 int Size=5; int A=new intSize; C#允许声明元素个数为0的数组,例如: int A=new int0;,章节目录,上一
6、页,下一页,数组在实例化时,可以为元素指定初始化值,其格式为: 数组名称=new 类型名称无符号整型表达式值1,值2; 例如:int A= new int51,2,3,4,5; 如果为数组指定初始化值,可以省略对元素个数的说明: int A= new int 1,2,3,4,5; 可以将声明数组的语句“int A= new int51,2,3,4,5;”简化为:int A= 1,2,3,4,5;,章节目录,上一页,下一页,为数组指定初始化的值可以是变量表达式,例如: int x=1,y=2; int A= new int5x,y,x+y,y+y,y*y+1; 一旦要为数组指定初始化值,就必须为
7、数组的所有元素指定初始化值,指定值的个数既不能多于数组的元素个数,也不能少于数组的元素个数。,章节目录,上一页,下一页,2. 访问数组 使用数组名与下标(索引)可以唯一确定数组中的某个元素,从而实现对该元素的访问。例如: int x=4,y=5; int A=new int31,2,3; / 使用数组第1个元素的值为其他变量赋值 x=A 0; A 1=y; / 为数组第2个元素赋值,章节目录,上一页,下一页,在访问数组元素时,要注意不要使下标越界,例如: int A=new int5; A5=15; / 下标越界 可以在实例化数组时为数组的所有元素初始化指定的值,但不能在赋值语句中使用一个赋值
8、运算符为整个数组赋值,例如: int A=new int31,2,3; / 正确 A=4,5,6; / 错误,试图为整个数组赋值,章节目录,上一页,下一页,3. foreach循环语句 C#专门提供了一种用于遍历数组的foreach循环语句。foreach循环语句的格式为: foreach(类型名称 变量名称 in 数组名称)循环体 语句中的“变量名称”是一个循环变量,在循环中,该变量依次获取数组中各元素的值。因此,对于依次获取数组中各元素值的操作,使用这种循环语句就很方便。要注意,“变量名称”的类型必须与数组的类型一致。,章节目录,上一页,下一页,例如,假定有一个整型数组A,则用foreac
9、h语句获取数组中和元素的值并输出到label1控件的Text属性中的代码为: foreach(int i in A) label1.Text = label1.Text + i + “ “; foreach语句遍历数组虽然很方便,但其功能受一定的限制,例如,如果想为数组各元素依次有规律赋值,foreach循环将无能为力。,章节目录,上一页,下一页,9.2.2 声明多维数组 在多维数组中,比较常用的是二维数组,声明二维数组与声明一维数组格式类似,例如: / 声明并实例化一个两行两列的二维数组 int , A=new int2,21,2,3,4; 声明多维数组时,用逗号表示维数,一个逗号表示二维数
10、组,两个逗号表示三维数组,依次类推。,章节目录,上一页,下一页,访问多维数组需要用多个下标唯一确定数组中某个元素,例如: / 声明一个4行4列的二维数组 int , Ar=new int4,4; Ar1,2=15; / 为第2行第3列的元素赋值 / 用第2行第3列的元素为其他变量赋值 int a=Ar1,2; 要访问二维数组中的所有元素可以使用双重循环来实现,通常外循环控制行,内循环控制列。,章节目录,上一页,下一页,9.2.3 声明数组列表(ArrayList) ArrayList叫数组列表,数组列表是一个集合类,由该类声明的对象可以当做数组来使用。ArrayList类属于System.Co
11、llections命名空间,所以声明ArrayList类对象必须引用该命名空间,在Visual Sdudio.Net 2003中创建Windows应用程序时,该命名空间的引用已由系统自动生成。但在Visual Sdudio.Net 2005中则需要手动添加对该命名空间的引用。,章节目录,上一页,下一页,如果在声明ArrayList类对象时,想使该对象具有数组那样所包含的元素个数,可以用一个已经实例化的数组来初始化,其格式为: ArrayList 名称=new ArrayList(数组名称); 其中,“数组名称”为已经实例化的数组,例如: int A=new int5; ArrayList AL
12、=new ArrayList(A); string sA=new string4; ArrayList sAL=new ArrayList(sA);,章节目录,上一页,下一页,可以使用访问数组元素的方法访问数组列表中的元素,例如: int A=new int5; ArrayList AL=new ArrayList(A); AL3=15; / 为数组列表中的第4个元素赋值 / 用数组列表中的第4个元素为其他变量赋值 int a = (int)AL3; 控件如果包含Items属性,该属性可以看作是一个数组列表。,章节目录,上一页,下一页,7.2.2 字符方式下的FTP命令 进入DOS方式(Win
13、dows的命令提示符方式)或UNIX、Linux终端窗口后,执行类似“ftp 192.168.10.16”或“ftp ”的命令,若登录的是匿名服务器,可输入登录用户名(username)如本例的“Anonymous”;不输入密码(password)直接按Enter键;屏幕显示“230 User logged in, proceed.”及提示符“ftp”,表示登录成功。,章节目录,上一页,下一页,9.2.4 声明控件数组 1. 在窗体中添加控件 创建一个Windows应用程序项目,在窗体上添加4个文本框。 2. 设计代码 在Form1类定义中声明文本框数组字段代码: private System
14、.Windows.Forms.TextBox textB;,章节目录,上一页,下一页,对该数组实例化。窗体的Load事件代码为: private void Form1_Load (object sender, System.EventArgs e) / 实例化并指定各元素值 textB=new TextBox textBox1,textBox2,textBox3,textBox4; ,章节目录,上一页,下一页,9.3 数组参数 9.3.1 数组元素为参数 数组元素作为参数只能在调用方法时作为实参进行传递,这时数组元素实参与简单变量实参功能相同。 9.3.2 整个数组为参数 整个数组作为参数时,
15、实参与形参是相对应的。由于数组是引用类型,所以数组参数总是按引用传递的。,章节目录,上一页,下一页,声明方法时,数组作为形参的格式为: public 返回类型 方法名称(类型名称 数组名称) 调用方法时,数组作为实参进行传递的格式为: 方法名称(数组名称),章节目录,上一页,下一页,9.3.3 params关键字 在使用数组作为形参时,C#提供了params关键字,使调用数组为形参的方法时,既可以传递数组实参,也可以只传递一组数据。params的使用格式为: public 返回类型 方法名称(params 类型名称 数组名称) ,章节目录,上一页,下一页,9.4 数组与数组列表的属性与方法 9.4.1 数组与数组列表属性 1. Length与Count属性 Length属性表示数组包含多少个元素。 在数组列表中,表示包含元素个数的属性为Count,其性质与用法与数组的Length属性相同。 2. IsReadOnly属性 数组与数组列表均具有IsReadOnly属性,该属性可判断数组或数组列表中的元素是否为只读的。,章节目录,上一页,下一页,9.4.2 数组与数组列表方法 1. Clone与CopyTo方法 克隆(Clone)与拷贝(CopyTo)方法的功能均为数组复制操作。数组与数组列