200 likes | 408 Views
Chapter 6. Sub Procedures And Functions. 6.1 Introduction. In Visual Basic .NET There Are Two Broad Categories of Procedures: Sub Procedures and Function Procedures. Chapter 6 Topics. A Sub Procedure is a collection of statements that performs a task
E N D
Chapter 6 Sub Procedures And Functions
6.1Introduction In Visual Basic .NET There Are Two Broad Categories of Procedures: Sub Procedures and Function Procedures
Chapter 6 Topics • A Sub Procedure is a collection of statements that performs a task • The word Sub is an abbreviation for the older term “subroutine” • Event procedures belong to this category • A Function procedure is a collection of statements that performs a task and then returns a value to the part of the program that executed it • Function procedures work like intrinsic functions, such as Val and IsNumeric
6.2Sub Procedures You Can Write Your Own General Purpose Sub Procedures That Perform Specific Tasks General Purpose Sub Procedures Are Not Triggered by Events but Called From Statements in Other Procedures
Sub Procedure Uses • As Event handling code • As General code that is executed by statements in other procedures
Uses for Sub Procedures • To Modularize one's program • Break it into small, manageable hunks • To Simplify one's program • Create individual sub procedures to perform tasks that are done repeatedly
Sample Sub Procedure Private Sub btnGo_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnGo.Click ' This procedure calls the DisplayMessage procedure. lstOutput.Items.Add("Hello from btnGo_Click procedure.") lstOutput.Items.Add("Calling the DisplayMessage " & _ "procedure.") DisplayMessage() lstOutput.Items.Add("Now I am back in the btnGo_Click procedure.") End Sub Sub DisplayMessage() 'A Sub procedure that displays a message. lstOutput.Items.Add("") lstOutput.Items.Add("Hello from DisplayMessage.") lstOutput.Items.Add("") End Sub
Declaring a Sub Procedure [AccessSpecifier] Sub ProcedureName ([ParameterList]) [Statement(s)] End Sub • AccessSpecifier gives accessibility to the program • ParameterList is a list of variable values that are being passed to the sub procedure • 'Sub' and 'End' are keywords
Local Variables • Within the Sub Procedure, declare the variable names that are needed • These work as they do in other procedures • They are only accessible from inside the sub procedure in which they are declared • (Their values are not saved from one call to the sub procedure to the next)
Static Local Variables • Declared with • These local variables do maintain their values from one call to the sub procedure to the next Static VariableName As DataType
6.3Passing Values to a Sub Procedure When a Procedure Is Called, Values May Be Passed to It
Passing Parameters By Value, Example DisplayValue(5) Sub DisplayValue(ByVal number As Integer) ' This procedure displays a value in a message box. MessageBox.Show(number.ToString) End Sub • The value, 5, is copied into the storage location of 'number' in DisplayValue • Then DisplayValue executes
Passing Multiple Parameters ShowSum(5, 10) Sub ShowSum(ByVal num1 As Integer, ByVal num2 As Integer) ' This procedure accepts two arguments, and prints ' their sum on the form. Dim sum As Integer sum = num1 + num2 MessageBox.Show("The sum is " & sum.ToString) End Sub • Value of first argument is copied to first • Second to second, etc.
Passing Arguments by Reference • Keyword 'ByVal' is used to indicate passing a parameter by value (value is copied) • Keyword 'ByRef' indicates passing a parameter in another way: • Use of the corresponding variable in the sub procedure refers to the corresponding storage location in the calling program • There is no corresponding storage location in the sub procedure (to receive a copy)
6.4Function Procedures A Function Procedure Returns a Value to the Part of the Program That Called the Function Procedure
Declaring a Function Procedure [AccessSpecifier] Function FunctionName ([ParameterList]) _ As DataType [Statements] End Function • New keyword 'Function' • Plus 'As DataType' qualifier to state the data type of the returned value • Return value is specified in a Return expression
Arguments Passed and Value Returned total = Sum(value1, value2) Function Sum(ByVal num1 As Single, ByVal num2 As Single) _ As Single Dim result As Single result = num1 + num2 Return result End Function
Returning Nonnumeric Values Function FullName(ByVal first As String, ByVal last As String)_ As String Dim name As String name = last & ", " & first Return name End Function Function IsValid(num As Integer) As Boolean Dim status As Boolean If num >= 0 And num <= 100 Then status = True Else status = False End If Return status End Function
6.5More About Debugging Step Into Step Over Step Out
Debugging Involving Procedures • Step Into - Proceed to Debug within a Procedure • Step Over - Let the procedure run, continue debugging after the call • Step Out - Quit debugging within a procedure, continue debugging after the call