《VB教程第七课(MSDN)》由会员分享,可在线阅读,更多相关《VB教程第七课(MSDN)(10页珍藏版)》请在金锄头文库上搜索。
1、文档供参考,可复制、编制,期待您的好评与关注! 第七课使计算机执行某种操作:编写您的第一个过程Visual Studio 2008 其他版本 Visual Studio 2005 更新:2007 年 11 月在本课中,您将学习如何创建“过程”(即可以从其他代码块运行的独立代码块)。 然后,您将学习如何为过程创建参数。过程就是通知程序执行某项操作的代码块。虽然您可能还没有意识到,但您在以前的课程中已经使用了过程。例如,MsgBox 函数就是一个内置过程,此过程执行显示对话框的操作。虽然 Visual Basic 有很多内置过程可用来执行常见操作,但总会存在一些情况,您希望程序执行内置过程无法处理
2、的操作。例如,MsgBox 函数无法显示包含图片的对话框。您必须自己编写过程来完成此任务。什么是过程? 过程是可以从其他代码块中运行的自我包含的代码块。一般而言,每个过程都包含完成一项任务所需的代码。例如,您可能有一个名为 PlaySound 的过程,此过程包含播放波形文件所需的代码。虽然您可以在程序每次需要发出声音时编写相同的代码来播放声音,但创建一个可以从程序中的任何位置调用的过程更有意义。过程是通过在代码中调用它来运行或执行的。例如,若要运行 PlaySound 过程,只需向程序中添加一行包含过程名称的代码,如此处所示。PlaySound() 这样就可以了!当程序运行到该行时,它将跳至
3、PlaySound 过程并执行其中所包含的代码。然后程序将跳回至紧跟在 PlaySound 调用后的下一行。您可以随意调用任意多个过程。过程将按调用的顺序运行。例如,您可能还有一个名为 DisplayResults 的过程;若要在执行 PlaySounds 过程后执行它,请按此处所示调用这两个过程。PlaySounds() DisplayResults() 函数和 Sub 有两种过程:函数和子例程(有时也称为“Sub”)。函数对调用它的过程返回一个值,而 Sub 只执行代码。如下例所示,当向程序中添加一行包含 Sub 的名称的代码时,将调用对应的 Sub。DisplayResults 函数则不
4、同,因为函数不仅执行代码,还要返回一个值。例如,设想一个名为 GetDayOfWeek 的函数,它返回一个 Integer 以指示当天是星期几。可以按如此处所示的方式调用此函数:先声明一个存储返回值的变量,然后将返回值赋给该变量以供以后使用。Dim Today As Integer Today = GetDayOfWeek 在本示例中,将函数返回的值复制到名为 Today 变量中并存储以便稍后使用。编写过程 通过先编写过程声明来编写过程。 过程声明将执行以下几项任务。指出过程是一个函数还是一个 Sub,命名过程,并详细说明过程可能具有的任何参数。(本课后面将详细讨论参数)。下面是一个简单过程声
5、明的示例。VB C# C+ F# JScript 复制 Sub MyFirstSub()End SubSub 关键字通知程序此过程是一个 Sub 并且不返回值。紧接着是 Sub 的名称 (MyFirstSub),空括号表示此过程没有任何参数。 最后,End Sub 关键字表示此例程的结尾。此 Sub 要执行的所有代码都放在这两行之间。声明函数与此类似,但还有一个额外的步骤,即必须指定返回类型(例如 Integer、String 等)。例如,返回一个 Integer 的函数可能如下所示。VB C# C+ F# JScript 复制 Function MyFirstFunction() As In
6、tegerEnd FunctionAs Integer 关键字表示此函数将返回一个 Integer 值。要从函数中返回值,请使用 Return 关键字,如下例所示。VB C# C+ F# JScript 复制 Function GetTheNumberOne() As Integer Return 1End Function此过程将返回数字 1。试一试! 创建过程1. 在“文件”菜单上单击“新建项目”。2. 在“新建项目”对话框的“模板”窗格中,单击“Windows 应用程序”。3. 在“名称”框中键入 MyFirstProcedure,然后单击“确定”。一个新的 Windows 窗体项目随即
7、打开。4. 双击该窗体以打开代码编辑器。5. 在代码编辑器中,找到 End Class 行。这是组成窗体的代码部分的结尾。在紧靠此行的前面,添加下面的过程:VB C# C+ F# JScript 复制 Function GetTime() As String Return CStr(Now)End Function此函数使用内置的 Now 过程接收当前时间,然后使用 CStr 函数将 Now 返回的值转换为用户可以理解的 String。最后,该 String 值作为函数的结果被返回。6. 在上一步中添加的函数上方,添加下面的 Sub。VB C# C+ F# JScript 复制 Sub Dis
8、playTime() MsgBox(GetTime)End Sub此 sub 调用函数 GetTime 并将其返回的结果显示在消息框中。7. 最后,向调用 DisplayTime Sub 的 Form1_Load 事件处理程序中添加一行,如此处所示。VB C# C+ F# JScript 复制 DisplayTime()8. 按 F5 运行程序。当程序启动时,将执行 Form1_Load 事件过程。此过程调用 DisplayTime sub,因此程序执行跳至 DisplayTime sub 过程。此 sub 接着调用 GetTime 函数,因此程序执行随后跳至 GetTime 函数。此函数返回
9、一个 String 表示 DisplayTime sub 过程的时间,此 sub 过程随后将在一个消息框中显示该字符串。此 sub 执行完毕后,程序继续正常执行并显示窗体。函数和 Sub 中的参数 有时您必须为过程提供其他信息。例如,在 PlaySound 过程中,您可能想要播放几种不同声音中的一种。您可以通过使用参数提供有关要播放的声音的信息。参数与变量非常相像。它们有类型和名称,并像变量一样存储信息。它们可以像变量一样在过程中使用。参数和变量的两个主要区别如下所示: 参数是在过程声明中声明的,而不是在单个代码行中声明的。 参数只能在声明它们的过程中使用。在过程声明中,参数在紧跟着过程名的括
10、号中声明。As 关键字用来声明类型,并且每个参数前面一般都有 ByVal 关键字。如果您不添加此关键字,Visual Basic 会自动添加它,并且它有一个相当高级的函数(不在本课讲解的范围内)。此处显示了一个带有参数的 Sub 的示例。VB C# C+ F# JScript 复制 Sub PlaySound(ByVal SoundFile As String, ByVal Volume As Integer) My.Computer.Audio.Play(SoundFile, Volume)End Sub您随后就可以按此处所示用这些参数的值调用此 Sub。VB C# C+ F# JScrip
11、t 复制 PlaySound(Startup.wav, 1)也可以用与声明 Sub 参数相同的方式声明函数参数。试一试! 创建带有参数的函数1. 在“文件”菜单上单击“新建项目”。2. 在“新建项目”对话框的“模板”窗格中,单击“Windows 应用程序”。3. 在“名称”框中键入 parameters,然后单击“确定”。一个新的 Windows 窗体项目随即打开。4. 将两个“Textbox”控件从“工具箱”中拖动到窗体上。5. 将一个“Button”控件从“工具箱”中拖动到窗体上。6. 双击该“Button”以打开代码编辑器。7. 紧接着 Button1_Click 事件处理程序的 End
12、 Sub 行后面,添加下面的过程:VB C# C+ F# JScript 复制 Function AddTwoNumbers(ByVal N1 As Integer, ByVal N2 As Integer) _ As Integer Return N1 + N2End Function8. 在 Button1_Click 过程中,添加下面的代码:VB C# C+ F# JScript 复制 Dim aNumber As Integer = CInt(Textbox1.Text)Dim bNumber As Integer = CInt(Textbox2.Text)MsgBox(AddTwoNumbers(aNumber, bNumber)此代码声明两个整数,并将两个文本框中的文本转换为整数值。然后它将这两个整型值传递给 AddTwoNumbers 函数并在消息框中显示返回值。9. 按 F5 运行程序。10. 在每个文本框中分别键入一个数字值,然后单击按钮。这两个数相加并在消息框中显示结果。 /