《Visual Basic.NET程序设计与应用》-徐振明-电子教案 第5章

上传人:E**** 文档编号:89401240 上传时间:2019-05-24 格式:PPT 页数:38 大小:359.50KB
返回 下载 相关 举报
《Visual Basic.NET程序设计与应用》-徐振明-电子教案 第5章_第1页
第1页 / 共38页
《Visual Basic.NET程序设计与应用》-徐振明-电子教案 第5章_第2页
第2页 / 共38页
《Visual Basic.NET程序设计与应用》-徐振明-电子教案 第5章_第3页
第3页 / 共38页
《Visual Basic.NET程序设计与应用》-徐振明-电子教案 第5章_第4页
第4页 / 共38页
《Visual Basic.NET程序设计与应用》-徐振明-电子教案 第5章_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《《Visual Basic.NET程序设计与应用》-徐振明-电子教案 第5章》由会员分享,可在线阅读,更多相关《《Visual Basic.NET程序设计与应用》-徐振明-电子教案 第5章(38页珍藏版)》请在金锄头文库上搜索。

1、5.1 过程的基本概念 5.2 Sub过程 5.3 Function过程 5.4 过程的参数传递 5.5 实践检验,第5章 过 程,本章知识点: 事件过程、通用过程、Function过程的各自特点 过程的创建及调用,过程的作用范围 形式参数与实际参数、按值传递与按地址传递的概念,第5章 过 程,5.1 过程的基本概念,“过程”是包含在过程声明语句和过程结束语句之间的 VB.NET 语句块。所有的 VB.NET 语句代码都是在过程内部编写的。 过程从代码中的其他某处被调用。当过程执行结束时,它将控制返回给调用它的代码,此代码称为“呼叫代码”。呼叫代码是一个语句或语句内的表达式,它通过名称指定过程

2、并将控制转让给它。 5.1.1 过程种类 在VB中,除了系统提供的内部函数过程和事件过程外,用户可自定义下列4种过程。 - Sub保留字开始的为子过程,不返回值。 - Function保留字开始的为函数过程,返回一函数值给呼叫代码。 - Property保留字开始的为属性过程,返回和分配对象或模块上的属性值。 - Event保留字开始的为响应由用户操作或程序中的事件触发而执行的 Sub 过程。 本章将主要讨论前2种过程,Property过程和Event过程将在第8章介绍。,5.1.2 过程的特点 用过程构造代码有以下特点: - 应用程序中的每行代码都必须在某个过程的内部,如果将大过程细分为更小

3、的过程,应用程序的可读性将更强。 - 过程对执行重复或共享的任务很有用。可以在代码中的许多不同位置调用过程,因此可以将过程用作应用程序的生成块。 - 过程允许将程序分为不连续的逻辑单元。调试单独的单元与调试不包含过程的整个程序相比要容易。 - 可以在其他程序中使用为某个程序开发的过程,而通常只需少量修改甚至不需修改。,5.2.1 事件过程与通用过程 VB.NET的Sub过程分为事件过程和通用过程两大类。事件是可被某对象识别的操作或结果(如单击命令按钮或数值超限等),可以为它编写响应代码。事件可以作为用户操作或程序计算的结果发生,也可以由系统触发。事件处理过程是为响应特定事件而编写的代码。有时多

4、个不同的过程段需要使用同一段程序代码,为此,可将这段代码独立出来,编写为一个共用的过程,这种过程通常称为通用过程,它独立于事件过程之外,可供其他过程调用。 对象事件的语法格式为: Private Sub_() Handles End Sub 其中: Handles关键字为可选参数,指示此过程是否可以处理一个或多个特定事件。,5.2 Sub过程,包括所有共享此过程的(事件)过程名。 就是程序设计者编写的事件响应程序代码。 虽然可以自己键入事件过程的声明语句,但VB.NET可自动声明,自动声明不仅快捷,而且不会出现人为错误,是一种值得提倡的方法。具体方法如下: 在代码窗体中,从“对象下拉列表框”中

5、选择一个对象,从“过程下拉列表框”中选择一个事件过程名,就可在代码窗口中生成一个事件过程声明模板。例如:当对象选为窗体Form1,过程选择为Click,则在代码窗口就生成如图5-1所示的声明模板。,通用过程只有在被调用时才被执行,主调程序可以是事件过程,也可以是通用过程。通用过程可以保存在窗体模块和标准模块中,其与事件过程不同之处在于,通用过程不是由对象的某个事件激活的,因此,通用过程的创建方法与事件过程有所不同。 5.2.2 通用过程的创建 已经学习了事件过程的创建方法,那么通用事件呢?可以在“代码编辑窗口”中直接输入用户创建的过程,此时,代码窗口中的“对象下拉列表框”变为“常规”,“过程下

6、拉列表框”显示“声明”。 通用过程的定义形式如下: Sub() End Sub 说明: (1)为可选项,可以是以下内容之一。 - Public :全局过程,没有访问限制,为默认访问修饰符。 - Protected :受保护过程,只能从其自身的类或派生类访问。 - Friend :友元过程,只可从包含其声明的程序集内访问。 - Private :私有过程,只能在模块级使用 Private。,(2)使用与变量名相同的命名规则。过程名不返回值,而是通过形参与实参的传递得到结果,调用时可返回多个值。 (3)是VB的程序段,除一般的执行语句外,还可以包含局部变量或常数定义语句及Exit Sub从过程中跳

7、出的语句。 (4)的语法格式。 Optional ByVal|ByRef ParamArrayAs= 其中: - Optional表示参数不是必须的关键字。如果使用了该选项,则(形参表)中的后续参数都必须是可选的,而且必须都使用Optional关键字声明。如果使用了ParamArray,则任何参数都不能使用Optional。 - ByVal表示该参数按值传递;ByRef表示该参数按地址传递。ByRef是VB的默认选项。 - ParamArray只用于形参表的最后一个参数,使用ParamArray关键字可以提供任意数目的参数。ParamArray关键字不能与ByVal、ByRef或Optiona

8、l一起使用。 - 代表参数的变量的名称,遵循标准的变量命名约定。如果是数组变量,要在数组名后加上一对圆括号。 - 代表任何常数或常数表达式,只对Optional参数合法。如果类型为Object,则显式的默认值只能是Nothing。,5.2.3 通用过程的调用 可以使用独立的调用语句来显式调用Sub过程,不能在表达式中使用过程名称来调用该过程,必须提供所有必选参数的值,并且必须用括号将实参数列表括起来。如果未提供任何参数,则也可以选择省略括号。 调用Sub过程的语法如下所示: Call () Call 关键字是可选项。 例5-1 调用全局过程。 设计说明: 在工程中建立三个模块:Form1窗体模

9、块,Form2窗体模块,Module1标准模块。其中,Form1、Form2窗体界面分别如图5-2(a)、(b)所示。在上述三个模块中分别建立三个全局过程:F1_test(a As Form),F2_test(a As Form),M_test(a As Form),代码如下: Form1窗体代码如下: Public Sub F1_test() Me.Label1.Text = “执行Form1窗体过程F1_test“ 输出到Label1 End Sub,Form2窗体中的全局过程F2_test代码如下: Public Sub F2_test() Form1.Label2.Text = “执行

10、Form2窗体过程F2_test“ 输出到Form1窗体的Label2 End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Call F2_test() 调用其他窗体模块中的Public过程必须加窗体模块名 End Sub Module1中的全局过程M_test代码如下: Sub Main() Dim f1 As New Form1 f1.Show() End Sub Public Sub M_test() Form

11、1.Label3.Text = “执行Module1中M_test过程“ 输出到Form1窗体的Label3 End Sub 程序运行结果如图5-2(c)所示。,例5-2 计算5!、6!、8!以及5!+6!+8!,如图5-3所示。 设计说明: 在Form1窗体中包含一个Label1框,4个Button控件,4个命令按钮的Text属性如图5-3(a)所示,其从左到右4个命令按钮的Tag属性分别为5,6,8,7,运行界面如图5-3 (b)所示。,4个Button控件共享的Click代码为: Private Sub Button1_Click(ByVal sender As System.Objec

12、t, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click, Button3.Click, Button4.Click Dim Sum As Long Call Fact(sender.TAG, Sum) 实参Sum的类型必须与形参Total一致,即Long型 If sender. Tag = 7 Then Sum = Sum / 42 + Sum / 7 + Sum * 8 5!+6!+8!,此处Sum=7! Label1.Text = sender. Text & “ = “ & Sum End Sub,计算阶乘

13、n的通用过程Fact为: Private Sub Fact(ByVal n As Integer, ByRef Total As Long) Dim i As Integer Total = 1 For i = 1 To n Total = Total * i Next End Sub 在应用程序设计中,有时需要让单个事件处理程序用于多个事件或者让多个事件引发同一过程。本例的4个命令按钮的Click事件共享Button1_Click事件处理程序,是通过使用 Handles 关键字实现的。 Button1_Click事件处理过程的第一个参数 sender 提供对引发事件的对象的引用,通过引用对象

14、的属性(Tag或TabIndex等)可获得一些信息。上面示例中的第二个参数 e 传递针对要处理事件的对象,如鼠标事件中鼠标的位置。,5.3 Function过程,VB函数分为内部函数和外部函数。内部函数在2.8节已做介绍(见表2-13所示),如Cos、Sqrt、Len等。外部函数是用户根据需要用Function关键字定义的函数过程,与Sub过程不同的是通常Function过程将返回一个值。因此,Function过程的调用常出现在表达式中或赋值语句中,尽管Function过程可以作为基本语句使用,但一般不用。而Sub过程没有返回值,都是作为独立的基本语句使用。 Function过程是包含在Fun

15、ction 语句和End Function 语句之间的一系列Visual Basic语句。每次调用过程时都执行过程中的语句,从 Function 语句后的第一个可执行语句开始,到遇到的第一个End Function、Exit Function或Return 语句结束。 Function过程与Sub过程相似,但它还向调用程序返回值。Function过程可以带呼叫代码传递给它的参数,如常数、变量或表达式。 声明Function过程的语法如下所示: Function () As类型 语句体 函数名表达式 或 Return 表达式 End Function,Sub 过程相同可以是 Public、Pro

16、tected、Friend、Protected Friend 或 Private。 可以在模块、类和结构中定义Function 过程。默认情况下它们是Public,这意味着可以从应用程序中的任意位置调用它们。 说明: - Function过程以“Function”开头,以“End Function”结束。 - 函数名是Function的过程名字,命名规则与变量名规则相同。在函数体内,函数名可以当变量使用,函数的返回值可以通过对函数名的赋值语句来实现的,即函数值通过函数名返回,因此在函数过程中至少要对函数名赋值一次。 - As类型是指函数返回值的类型,如果类型检查开关(Option Strict 语句)为On,则为必选项。 -语句体是程序段,可有一个或多个Exit Function语句退出函数过程,常常是与选择结构(If或Select Case语句)联用,即当满足一定条件时,退出函数过程。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号