首页 VB.NET 第4章

VB.NET 第4章

举报
开通vip

VB.NET 第4章null第4章 数组、集合与结构第4章 数组、集合与结构4.1 数组 4.2 集合 4.3 枚举 4.4 结构前 言前 言VB 2005提供了可以存储复杂数据的几种复合数据类型,其中包括数组、枚举、集合、结构。在许多场合,使用复合数据类型可以缩短和简化程序。 本章主要介绍复合数据类型的概念和使用。4.1 数 组4.1 数 组数组就是这样的一种特殊变量类型,是用一个统一的名称表示的、顺序排列的一组变量的集合。数组中的变量称为数组元素,每个变量都分配有一个序号(称为下标或索引)来...

VB.NET 第4章
null第4章 数组、集合与结构第4章 数组、集合与结构4.1 数组 4.2 集合 4.3 枚举 4.4 结构前 言前 言VB 2005提供了可以存储复杂数据的几种复合数据类型,其中包括数组、枚举、集合、结构。在许多场合,使用复合数据类型可以缩短和简化程序。 本章主要介绍复合数据类型的概念和使用。4.1 数 组4.1 数 组数组就是这样的一种特殊变量类型,是用一个统一的名称 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示的、顺序排列的一组变量的集合。数组中的变量称为数组元素,每个变量都分配有一个序号(称为下标或索引)来标志它们,因此数组元素又称为下标变量。 本节主要介绍VB 2005的数组,包括数组的基本概念、数组的声明以及如何应用数组。4.1.1 数组的维数4.1.1 数组的维数如果一个数组的元素只有一个下标,则称这个数组为一维数组。 例如,数组S有10个元素:S(0)、S(1)、S(2)、…、S(9),依次保存10个学生的一门功课的成绩,则S为一维数组。 一维数组中的各个元素又称为单下标变量。一维数组中的下标又称为索引(Index)。 有两个下标的数组称为二维数组,其中的数组元素称为双下标变量。二维数组可以看成是一个表,也称为“矩形数组”。 数组元素中下标的个数称为数组的维数,维数还可以称为“秩”。可以通过为数组的每一维提供“索引”或“下标”来指定数组元素。在每一维中,元素都按照从索引0到该维的最大索引的顺序连续排列。 在VB2005中数组维数最多可达到32维。 4.1.2 数组的声明4.1.2 数组的声明数组变量的声明与其他变量的声明一样。在变量名后加上一对或几对圆括号,即可表示它是数组而不是简单变量。 1. 声明单维数组 单维数组也称为一维数组。在声明单维数组时要指定它的数组名称、大小、元素数据类型和访问权限。 其语法格式如下: <访问权限><数组名称>([<下标上界>]) [As <数组数据类型>] 下标下界默认从0开始。null例如: Dim myArray(5) As Integer ' 声明了一个名称为myArray的局部数组,有6个元素,下标索引从0到5 Public Sums(10) As Integer ' 声明了一个名称为Sums的公有数组,有11个元素,下标索引从0到10 可以在声明后再给数组元素赋值,也可以在声明时就赋值。 例如: Sums(3) = "你好" ' 给数组元素Sums(3)赋值一个字符串 Dim counters() As Integer = {1, 2, 3, 4, 5} ' 声明了一个名称为counters的数组,有5个元素,同时给数组元素赋值 不允许给声明时带有数组元素初始数目的数组赋值。例如: Dim counters(4) As Integer = {1, 2, 3, 4, 5} ' 声明错误null2. 声明多维数组 在声明多维数组中,其语法格式如下: <访问权限><数组名称>(<维数定义>) [As <数组数据类型>] 例如: Dim myarr1(2, 3, 4, 5) As Integer ' 声明一个名称为myarr1的4维数组变量 ' 声明一个名称为myarr2的二维数组变量,(2+1)×(3+1)=12个元素 Dim myarr2(2, 3) As Integer ' 声明一个名称为myarr3的三维数组变量,3×4×5=60个元素 Dim myarr3(2, 3, 4) As Integer ' 声明arr数组的秩同时给数组赋值 Dim arr(,) As String = {{"a", "b", "c"}, {"d", "e", "f"}}null3. 动态数组 在程序中使用数组时,随着程序的运行,可能数组原来的大小已经不能满足要求,那么就会遇到需要改变数组大小的情况。 VB 2005规定不能改变已声明数组的维数(也称为“秩”),但可以通过ReDim语句改变已声明数组的元素个数,也就是为数组变量重新分配存储空间。 其语法格式如下: ReDim [ Preserve ]<数组名>(<下标上限>) 说明: Preserve参数用来保留现有数组中的数据。null例如: ' 声明MyArray为二维数组 Dim MyArray(,) As Double ' 声明MyArray二维数组的元素个数 ReDim MyArray(5, 5) 4.1.3 使用数组4.1.3 使用数组对数组元素的操作如同对简单变量的操作,与简单变量不同的是,数组变量除了引用数组名之外,还要标明它的下标。 例如: Dim a(5) As Integer a(3)=10 TextBox2.Text = a(3)4.1.4 多行文本框(RichTextBox)控件4.1.4 多行文本框(RichTextBox)控件VB 2005提供了多行文本框(RichTextBox)控件,来显示多行文本信息。多行文本框控件与文本框最大的区别就是可以将结果以多行的形式显示。它的属性、方法和事件与文本框控件相似。 【例4-1】有一个5×5的矩阵,随机产生25个两位数赋值给该数组,求全部元素的平均值。 nullDim myArray(4, 4) As Integer ' 在窗体级模块声明一个二维数组 ' 命令按钮“生成数组”的Click事件,生成一个二维数组 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _Handles Button1.Click Dim i, j As Integer ' 声明循环体变量 Dim str As String = "" ' 声明用来数组显示的字符串变量 For i = 0 To 4 For j = 0 To 4 myArray(i, j) = Int(Rnd() * 90) + 10 str = str & "myArray" & "(" & i & " , " & j & ")" & " = " & myArray(i, j) & Chr(10) Next Next RichTextBox1.Text = str ' 数组赋值给多行文本框显示 End Subnull' 命令按钮“计算”的Click事件 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _Handles Button2.Click Dim i, j, sum As Integer Dim average As Double For i = 0 To 4 For j = 0 To 4 sum = sum + myArray(i, j) ' 计算数组总和 Next Next average = sum / 25 ' 计算数组平均值 TextBox1.Text = CStr(average) End Sub 4.1.5 列表框(ListBox)控件4.1.5 列表框(ListBox)控件下拉列表框一次只能显示和选择一个数据项,但有时用户需要显示或选择多个数据项。 VB 2005提供了列表框(ListBox)控件,列表框控件可以将所有结果显示在一个列表中。 列表框控件常用属性 null 列表框控件常用方法 null【例4-2】求斐波那契数列。null【例4-2】 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles Button1.Click Dim Fib(20), i As Integer ListBox1.Items.Clear() ' 初始化清空列表框 Fib(1) = 1 : Fib(2) = 1 ' 给斐波那契数列的前两个数组赋值 ListBox1.Items.Add("Fib(" & 1 & ")=" & 1) ' 添加到列表框 ListBox1.Items.Add("Fib(" & 2 & ")=" & 1) ' 添加到列表框 For i = 3 To 20 Fib(i) = Fib(i - 1) + Fib(i - 2) ' 求其他斐波那契数列的数组值 ListBox1.Items.Add("Fib(" & i & ")=" & Fib(i)) Next End Subnull【例4-3】设有10位学生的大学英语、离散数学、数据结构3门课程的成绩。求每人的平均成绩,各科的不及格的学生姓名。null【例4-3】 ' 在所有事件的前面声明数组 Dim Student(9) As String Dim Stu_Score(9, 2) As Double ' 窗体的Load事件 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _Handles MyBase.Load Dim i, j As Integer ' 给数组分别赋值 Student(0) = "张 明" : Stu_Score(0, 0) = 80 : Stu_Score(0, 1) = 55 : Stu_Score(0, 2) = 90 Student(1) = "李大生" : Stu_Score(1, 0) = 85 : Stu_Score(1, 1) = 80 : Stu_Score(1, 2) = 86 Student(2) = "郭广民" : Stu_Score(2, 0) = 70 : Stu_Score(2, 1) = 65 : Stu_Score(2, 2) = 73 Student(3) = "马英英" : Stu_Score(3, 0) = 55 : Stu_Score(3, 1) = 70 : Stu_Score(3, 2) = 69 Student(4) = "赵 阳" : Stu_Score(4, 0) = 79 : Stu_Score(4, 1) = 46 : Stu_Score(4, 2) = 90 Student(5) = "杨大伟" : Stu_Score(5, 0) = 78 : Stu_Score(5, 1) = 89 : Stu_Score(5, 2) = 82 Student(6) = "王东平" : Stu_Score(6, 0) = 79 : Stu_Score(6, 1) = 79 : Stu_Score(6, 2) = 87 Student(7) = "刘小林" : Stu_Score(7, 0) = 70 : Stu_Score(7, 1) = 50 : Stu_Score(7, 2) = 48 Student(8) = "姜珊珊" : Stu_Score(8, 0) = 78 : Stu_Score(8, 1) = 85 : Stu_Score(8, 2) = 89 Student(9) = "吴林林" : Stu_Score(9, 0) = 88 : Stu_Score(9, 1) = 89 : Stu_Score(9, 2) = 90null' 将学生数组添加到列表中 For i = 0 To 9 ListBox1.Items.Add(Student(i)) Next ' 将课程信息添加到下拉列表中 ComboBox1.Items.Add("大学英语") ComboBox1.Items.Add("离散数学") ComboBox1.Items.Add("数据结构") End Sub ' 下拉列表框的SelectedIndexChanged事件 Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As _System.EventArgs) Handles ListBox1.SelectedIndexChanged Dim i As Integer Dim sum, avg As Single For i = 0 To 9 ' 循环判断每个列表框选项个成绩数组 If ListBox1.GetSelected(i) = True Then ' 判断列表框中哪个选项被选中 TextBox1.Text = Stu_Score(i, 0) ' 大学英语成绩 TextBox2.Text = Stu_Score(i, 1) ' 离散数学成绩 TextBox3.Text = Stu_Score(i, 2) ' 数据结构成绩 sum = Stu_Score(i, 0) + Stu_Score(i, 1) + Stu_Score(i, 2) ' 计算总分 TextBox5.Text = sum avg = sum / 3 ' 计算平均分 TextBox4.Text = Math.Round(avg, 1) ' 平均分只保留1位小数 Exit For ' 计算结束,退出For…Next循环 End If Next End Subnull' 命令按钮“统计”的Click事件 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _Handles Button1.Click Dim Course, Name As String Dim i As Integer Course = ComboBox1.Text Select Case Course ' 判断下拉列表框选中哪门课程 Case Is = "大学英语" ' 如果是大学英语 For i = 0 To 9 ' 循环判断成绩 If Stu_Score(i, 0) < 60 Then ' 如果不及格 Name = Name & Student(i) & " " ' 挑出不及格学生姓名 End If Next Case Is = "离散数学" ' 如果是离散数学 For i = 0 To 9 If Stu_Score(i, 1) < 60 Then Name = Name & Student(i) & " " End If Next Case Is = "数据结构" ' 如果是数据结构 For i = 0 To 9 If Stu_Score(i, 2) < 60 Then Name = Name & Student(i) & " " End If Next End Select TextBox6.Text = Name ' 显示不及格学生姓名 End Sub 4.1.6 进度条(ProgressBar)控件4.1.6 进度条(ProgressBar)控件由于有的数组比较大,在生成期间用户经常要观察数组生成进度。VB 2005提供了进度条(ProgressBar)控件来提示进度。 进度条控件常用属性 null【例4-4】一个有100个元素的一维数组,随机产生100个3位数整数,输出数组并计算数组的和。null【例4-4】 ' 在所有事件的前面声明数组 Dim a(100) As Integer ' 命令按钮“生成数组”的Click事件 Private Sub Button1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles _Me.Load Dim myString As String Dim i As Integer Randomize() myString = "" For i = 1 To 100 ' 循环数组 ' 赋给每个数组变量一个随机数 a(i) = CInt(Int((999 - 100 + 1) * Rnd() + 100)) myString = myString & a(i) & Space(2) ProgressBar1.Value = i + 1 nullIf i Mod 4 = 0 Then ' 如果每行显示超过4个数据 myString = myString & Chr(13) ' 连接一个回车换行符,换行显示 End If Next Label1.Text = myString End Sub ' 命令按钮“计算”的Click事件 Private Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) _Handles Button1.Click Dim i As Integer Dim sum As Double For i = 1 To 100 sum = sum + a(i) ' 计算数组总和 Next TextBox1.Text = sum End Sub 4.1.8 For Each…Next语句4.1.8 For Each…Next语句与For…Next语句类似,都是重复执行指定的一组语句。但For Each…Next语句专门用于数组或集合,对数组或集合中的每个元素重复一组操作。 其语法格式如下: For Each <成员>[ As <数据类型>] In <数组或对象集合> [<语句序列1>] [ Exit For ] [<语句序列2>] Next [<成员>] 说明: (1)<成员>用于循环访问集合的元素。<成员>的数据类型必须是<数组>元素的数据类型或能够隐式转换到的类型。 (2)<数据类型>是可选项。如果尚未声明<成员>,则是必选项,表示<成员>的数据类型。如果在此循环外声明<成员>,则不能再重新声明。 (3)<数组或对象集合>选项必须引用对象集合或数组。null【例4-5】将【例4-4】的“计算”命令按钮的Click事件代码改写如下: ' 命令按钮“计算”的Click事件 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _Handles Button2.Click Dim m As Integer Dim sum As Double For Each m In a ‘m中存储数组a()的元素值 sum = sum + m Next TextBox1.Text = sum End Sub4.1.9 数组常用的属性和方法 4.1.9 数组常用的属性和方法 数组本质上是一个类,它有许多属性和方法,可以调用属性和方法来完成许多操作。程序员声明一个数组变量,其实是由Array类生成了一个具体的数组对象。 Array数组常用属性见表所示。nullArray数组常用方法null【例4-6】声明一个名为Student的String对象的数组,用学生姓名填充数组,可以存储5个姓名。然后按姓名的字母顺序对数组中的元素进行排序。 编写事件代码。 ' 在所有的过程之前声明数组 Dim student(4) As String Dim i As Integer = 0 '命令按钮“确定”的Click事件 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _Handles Button1.Click student(i) = TextBox1.Text ' 将键盘输入的数据赋值给数组变量 ListBox1.Items.Add(student(i)) ' 将数组值添加到列表框中 ListBox1.Refresh() ' 刷新列表框,将新添加数据显示出来 i = i + 1 If i > 4 Then ' 判断添加数组个数 Button1.Enabled = False ' 如果大于4个,超出数组范围,则不能再添加 End If End Subnull' 命令按钮“排序”的Click事件 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _Handles Button2.Click Array.Sort(student) ' 数组重新排序 ListBox1.Items.Clear( ) ' 列表框数据清空 Dim a As Integer For a = 0 To 4 ' 重新给列表框添加数据 ListBox1.Items.Add(student(a)) Next ListBox1.Refresh( ) ' 刷新列表框,将新添加数据显示出来 End Sub 4.1.10 快捷方式生成数组4.1.10 快捷方式生成数组在VB 2005中,程序员除了可以在代码编辑窗口中,直接声明数组和调用数组,还可以通过快捷方式——“插入代码段”来声明数组和调用数组。 程序员在代码编辑窗口中,单击鼠标右键,在快捷菜单中选择“插入代码段”选项。系统自动显示一个下拉列表,选择“集合和数组”选项。再选择相应的选项,系统自动插入相应代码。4.1.11 VB 2005中控件对象数组4.1.11 VB 2005中控件对象数组一个应用程序可能会有许多相同的控件对象,例如多个文本框、多个标签等。这些控件对象如果具有相同的属性、方法和事件,也可以将它们看作是一个文本框对象数组、标签对象数组。 在VB 2005中,不再支持控件数组,但可以使用事件模型来重复和扩展许多控件数组的功能。null1. 共享事件处理程序 在VB 6.0中,控件数组可用于指定一组共享事件集的控件。这些控件应该为相同的类型,并且具有相同的名称。 VB 2005允许任何事件处理程序处理来自多个控件的事件,即使是具有不同名称和不同类型的控件。 在VB 2005中,事件处理程序的Handles子句指定事件将处理的控件。只需要在控件共享相同的事件的过程首部参数Handles后面加上共享的控件名称和事件就可以了。这样可以简化程序代码的编写。 例如,可以向窗体添加两个Button控件(Button1和Button2)以及一个CheckBox控件(CheckBox1),然后创建一个事件处理程序来处理这三个控件的Click事件。 Private Sub MixedControls.Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click, CheckBox1.Clicknull2. 访问控件数组 VB 6.0使用Index属性访问控件数组。例如,若要清除控件数组中所有TextBox控件的文本,可将Index属性作为循环变量循环访问控件数组。 VB 2005中,控件没有Index属性,但是可以使用另一个公共属性(例如TabIndex属性)来实现相同的功能;也可使用Control类的ControlCollection循环访问窗体或容器上的控件。null【例4-7】三个Button命令按钮控件共享相同事件。 编写事件代码。 Dim week(7) As String '以对象名来区分命令按钮对象 Private Sub MixedControls_Click(ByVal sender As System.Object, ByVal e As _ System.EventArgs) Handles Button1.Click, Button2.Click, Button3.Click Dim i As Integer Select Case DirectCast(sender, Button).Name ' 判断Button名称 Case Button1.Name ' 如果是Button1 TextBox1.Text = "今天是" & Today Case Button2.Name ' 如果是Button2 TextBox1.Text = "现在是" & TimeOfDay Case Button3.Name ' 如果是Button3 For i = 1 To 7 If i = Weekday(Now) Then TextBox1.Text = "现在是" & week(i) End If Next End Select End Subnull' 以对象的TabIndex属性来区分命令按钮对象 Private Sub Buttones_Click(ByVal sender As System.Object, ByVal e As _ System.EventArgs) Handles Button1.Click, Button2.Click, Button3.Click Dim i As Integer Select Case sender.TabIndex ' 判断TabIndex序号 Case 0 ' 如果是Button1 TextBox1.Text = "今天是" & Today Case 1 ' 如果是Button2 TextBox1.Text = "现在是" & TimeOfDay Case 2 ' 如果是Button3 For i = 1 To 7 If i = Weekday(Now) Then TextBox1.Text = "现在是" & week(i) End If Next End Select End Sub ' 窗体的Load事件 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _Handles MyBase.Load week(1) = "星期日" week(2) = "星期一" week(3) = "星期二" week(4) = "星期三" week(5) = "星期四" week(6) = "星期五" week(7) = "星期六" End Sub 4.1.12 复选列表框(CheckedListBox)控件4.1.12 复选列表框(CheckedListBox)控件复选框控件一般都要显示多个选项,因此可以将这些选项看作是一个组。可以选中单个选项,也可以选中多个选项。 VB 2005提供了复选列表框(CheckedListBox)控件,它结合了复选框控件和列表框的特征,来明显的表示选中选项。复选列表框控件扩展了列表框控件。它几乎能完成列表框可以完成的所有任务,并且还可以在列表中的项旁边显示复选标记。null【例4-9】利用复选列表框控件选择选修课程。 ' 窗体的Load事件代码,在第1个复选列表框中添加选项 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ' 向CheckedListBox中添加数据 CheckedListBox1.Items.Add("大学英语") CheckedListBox1.Items.Add("大学 语文 八上语文短文两篇二年级语文一匹出色的马课件部编版八上语文文学常识部编八上语文文学常识二年级语文一匹出色的马课件 ") …… End Subnull' 命令按钮的事件代码,以对象名来区分命令按钮对象 Private Sub MixedControls_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click, Button3.Click, Button4.Click Dim i, j As Integer Select Case DirectCast(sender, Button).Name Case Button1.Name '向CheckedListBox2中添加选项 For i = 0 To CheckedListBox1.CheckedItems.Count - 1 If CheckedListBox1.CheckedItems.Count <> 0 Then CheckedListBox2.Items.Insert(i,_ CheckedListBox1.CheckedItems(i).ToString) End If Next i '从CheckedListBox1中移除选项 For j = CheckedListBox1.CheckedItems.Count - 1 To 0 Step -1 CheckedListBox1.Items.Remove(CheckedListBox1.CheckedItems.Item(j)) Next j ……4.1.13 页框(TabControl)控件4.1.13 页框(TabControl)控件有的应用程序由于需要较多的控件,在1个窗体上显示显的有些拥挤,甚至于显示不出来。VB 2005中提供页框(TabControl)控件,可以在1个窗体上显示多页面信息。 页框有一组选项卡,可以利用TabPages属性添加或删除选项卡。null【例4-10】在窗体上页框的不同选项卡上显示大写字母ASCII编码表和小写字母ASCII编码表。null【例4-10】 ' 窗体的Click事件 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _Handles MyBase.Load Dim i, j As Integer Dim s, t As String For i = 65 To 90 s = s & Chr(i) & "=" & CStr(i) & Space(1) j = j + 1 If j = 5 Then s = s & Chr(13) j = 0 End If Next RichTextBox1.Text = s j = 0 For i = 97 To 122 t = t & Chr(i) & "=" & CStr(i) & Space(1) j = j + 1 If j = 5 Then t = t & Chr(13) j = 0 End If Next RichTextBox2.Text = t End Sub4.2 集 合4.2 集 合一般来说,集合是一个用于对相关对象进行分组和管理的对象。 例如,每个Form均具有一个控件集合,此集合是一个表示该窗体上所有控件的对象。它允许按照控件的索引在集合中检索控件,以及使用For Each…Next语句来循环访问集合中的元素。 本节主要介绍利用VB 2005提供的Collection集合的定义和创建。4.2.1 集合概述4.2.1 集合概述集合(Collection)是一种将一组相关项组合在一起的方法。存在许多不同类型的集合。出于多种目的,VB2005不提供单独的Collection集合数据类型。集合的功能是通过 .NET框架类库的System.Collections命名空间提供的。 VB 2005中使用了预定义集合。例如窗体上的对象都是保存在同一文件中,而且VB将这些对象视为同一组的成员,那么窗体上所有对象合称为Controls集合。 Controls集合是在打开新窗体自动创建的。当向窗体添加新对象,该对象即成为该集合的一部分。程序中每个集合都有唯一的名称,因此程序中可将其作为一个独立单元。如果一个项目中有多个窗体,可以使用不同的Controls集合访问窗体之间的变量等。null例如,在窗体上有3个标签: Controls(0).Text = "计算机" Controls(1).Text = "打印机" Controls(2).Text = "照相机" 说明:通过引用Controls集合里不同的对象(通过索引值),可以给窗体中的标签赋值。 VB 2005也可以创建自己的集合以组织和操作对象自己的集合。与窗体的Controls集合类似,Collection类也提供了使用For Each…Next来循环访问元素以及按照索引检索元素的内置功能。 4.2.2 创建集合4.2.2 创建集合创建集合的方法采用的是创建对象的方法,其语法格式如下: [<访问权限>]<集合名> As New Collection 说明:集合中的元素的索引值是从1开始的。 例如,创建一个集合变量User: Dim User As New Collection4.2.3 使用集合4.2.3 使用集合在创建一个集合后,可以使用集合的方法来操作集合元素。 常用方法有:Add方法(添加)、Remove方法(移除)、Clear方法(清空)、Contains方法(判断某个元素是否存在)等。还可以用集合的属性来 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 集合,常用的属性有:Count属性(集合元素数量)、Item属性(集合中特定成员)。null【例4-11】定义一个集合people,存储学生学号和姓名,对集合进行操作。null【例4-11】 Imports System.Collections Public Class Form1 Dim people As New Collection() ' 创建个名为people的集合 ' 命令按钮“添加”的Click事件 Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles Button1.Click people.Add(TextBox1.Text, TextBox2.Text) ' 向集合添加数据 TextBox1.Clear() TextBox2.Clear() End Subnull' 命令按钮“统计”的Click事件 Private Sub button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _Handles Button2.Click TextBox4.Text = people.Count ' 统计集合中数据项个数 End Sub ' 命令按钮“查找”的Click事件 Private Sub button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _Handles Button3.Click Dim name As String name = Trim(TextBox3.Text) If people.Contains(name) Then ' 查询集合数据 Label5.Text = "找到了" & name Else Label5.Text = "没有找到" & name End If End Sub End Class null除了使用集合的方法来操作集合元素,还可以使用For Each...Next语句遍历整个集合。其语法格式如下: For Each <元素>[ As <数据类型>] In <集合名> [<语句序列1>] [ Exit For ] [<语句序列2>] Nextnull【例4-12】使用For Each...Next语句遍历people集合。将【例4-10】中的Find_Click事件代码改写如下: Private Sub Find_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Find.Click Dim name, c As String name = Trim(TextBox3.Text) '在birthdays集合众查找name元素 For Each c In people If c = name Then Label5.Text = "找到了" & name Exit For Else Label5.Text = "没有找到" & name End If Next End Sub4.3 枚 举4.3 枚 举编程时,有时需要用到一系列的相互关联的常量,例如在使用颜色时,不希望记忆那些枯燥的颜色值,那么这时候就可以定义成常量,用熟悉的英文名字来命名颜色。但是,通常的常量定义只能一个一个地定义,而常用的颜色又是多种多样的。这时就可以使用VB 2005的枚举类型。 本节主要介绍枚举类型的使用。4.3.1 声明枚举4.3.1 声明枚举枚举类型通过Enum语句来声明,其语法格式如下: [<访问权限>] Enum <枚举类型变量名> <成员名>[ = 常数表达式 ] <成员名>[ = 常数表达式 ] … End Enum 说明: 1) 使用Enum关键字声明枚举类型。 2)<成员名>是定义枚举中的常数。默认情况下,枚举中的第一个常数初始化为0,后面的常数初始化为比前面的常数多1的值。 3) 可使用赋值语句将值显式赋予枚举中的常数。可赋予任何整数值,包括负数。 4) 枚举类型通常是逻辑上彼此相关的不变值,而且只能在命名空间或模块级别使用Enum。4.3.2 使用枚举4.3.2 使用枚举声明枚举变量之后,就可以使用该枚举类型的变量,然后使用该变量存储枚举常数的值。若要引用枚举类型变量的成员,其语法格式如下: <枚举类型变量名>.<成员名称>null【例4-13】声明一个枚举类型,用来表示星期名称。在本文框中输入星期名称,输出相应的星期数。null' 声明1个名为Days的枚举类型 Public Enum Days Monday = 1 Tuesday = 2 Wednesday = 3 Thursday = 4 Friday = 5 Saturday = 6 Sunday = 7 End Enum Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim weekday As String weekday = TextBox1.Text Select Case weekday Case "Monday" Label2.Text = Days.Monday Case "Tuesday" Label2.Text = Days.Tuesday … End Select End Sub4.3.3 快捷方式生成枚举4.3.3 快捷方式生成枚举在VB 2005中,程序员也可以通过快捷方式——“插入代码段”来操作枚举。 程序员在代码编辑窗口中,单击鼠标右键(注意:应该将鼠标移至所有事件之外),在快捷菜单中选择“插入代码段”选项。系统自动显示一个下拉列表,选择“通用代码模式”选项,再选择“类型”选项,选择相应的选项。4.4 结 构4.4 结 构在一些实际应用中,有些数据是相互联系的,但它们却是不同类型的数据,为了把它们组合成一个有机的整体,就需要让单个变量保存这几个数据,以便在程序中引用这些数据。例如,一个雇员的基本信息包括的姓名、电话分机号和薪金等数据,这些数据类型各不相同,但它们都是雇员的基本信息,因此把上述不同类型数据作为一个整体来进行处理。可以定义一个结构并将它用于单个雇员变量。 另外,结构和枚举类型一样作为一种数据类型来使用,而且结构的各成员可以定义各自的访问权限。可以合并不同类型的数据项来创建结构。结构将一个或多个“元素”彼此关联并且将它们与结构本身关联。声明了结构后,它将成为“复合数据类型”,然后就可以声明该类型的变量。 本节主要介绍结构的定义和使用。 4.4.1 声明结构4.4.1 声明结构使用Structure语句作为结构声明的开始,并使用End Structure语句作为结构声明的结束。 在这两条语句之间必须至少声明一个“元素”,元素可以是任何数据类型。不能在结构声明中初始化任何结构元素。如果将一个变量声明为结构类型,则可以通过变量访问元素来给它们赋值。 要使用一个结构类型之前,必须先声明这个结构,即声明结构的名称,并引入结构包含的变量、属性、事件和过程的定义。 其语法格式如下: [<访问权限>] Structure <结构类型名> <结构数据成员声明> [<结构方法成员声明>] End Structurenull说明: 1)<结构数据成员声明>是必选项。一个或多个Const、Dim、Enum或Event语句,声明结构的数据成员。结构具有至少一个元素。必须声明结构的每个元素并指定其访问级别。如果使用不含任何关键字的Dim语句,则可访问性默认值为Public。 2) [结构方法成员声明]是可选项。包含零个或多个Function、Operator、Property或Sub过程的声明。 3) End Structure是必选项,用于终止Structure定义。null【例4-14】定义1个employee结构,该结构包含ID、Name
本文档为【VB.NET 第4章】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_368413
暂无简介~
格式:ppt
大小:968KB
软件:PowerPoint
页数:0
分类:互联网
上传时间:2010-10-28
浏览量:23