You are on page 1of 19

Visual Basic

Programming

1
Chapter
General Procedures
5

A procedure is a collection of
statements that performs a task
2
Introduction

◼ A procedure is a collection of statements that


performs a task
◼ Event handlers are a type of procedure

◼ A function is a collection of statements that


performs a task and returns a value to the VB
statement that executed it
◼ Functions work like intrinsic functions, such as

CInt and IsNumeric


◼ A method can be either a procedure or a function

3
Procedures

You Can Write Your Own General-Purpose


Procedures That Perform Specific Tasks
General Purpose Procedures Are Not Triggered
by Events but Called From Statements in Other
Procedures
4
Procedure Uses
• An event handler is a type of procedure
• Automatically executed when an event such as a
mouse click occurs
• General purpose procedures are triggered by
statements in other procedures, not by events
• Procedures help simplify & modularize code by:
• Breaking it into small, manageable pieces
• Performing a task that is needed repeatedly
• Dividing a program into a set of logical tasks

5
Sample 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
Calls
Returns to DisplayMessage
btnGo_Click procedure
Sub DisplayMessage()
'A Sub procedure that displays a message.
lstOutput.Items.Add("")
lstOutput.Items.Add("Hello from DisplayMessage.")
lstOutput.Items.Add("")
End Sub 6
Declaring a Procedure
[AccessSpecifier] Sub ProcedureName ([ParameterList])
[Statements]
End Sub

• AccessSpecifier is optional and establishes


accessibility to the program
• Sub and End are keywords
• ProcedureName used to refer to procedure
• Use Pascal casing, capitalize 1st character of the name
and each new word in the name
• ParameterList is a list of variables or values being
passed to the sub procedure

7
More on the Access Specifier
• Private allows use only from that form
• Public allows use from other forms
• If not specified, default is Public
• There are other access specifiers such as:
• Protected
• Friend
• Protected Friend
• Access specifiers won’t be used for now

8
Procedures
• Variables needed only in a procedure,
should be declared within that
procedure
• Creates a local variable with scope only
within the procedure where declared
• Local variable values are not saved from
one procedure call to the next

9
Passing Arguments to a
Procedure

When calling a procedure, you can


pass it values known as arguments

10
Arguments
• Argument – a value passed to a procedure
• We’ve already done this with functions
• Value = CInt(txtInput.Text)
• Calls the CInt function and passes txtInput.Text as an
argument
• A procedure must be declared with a parameter list
in order to accept an argument

11
Passing Arguments By Value
DisplayValue(5) ‘calls DisplayValue procedure

Sub DisplayValue(ByVal intNumber As Integer)


' This procedure displays a value in a message box.
MessageBox.Show(intNumber.ToString)
End Sub

• intNumber declared as an integer argument


• Storage location intNumber created by procedure
• A value, 5 in this case, must be supplied and is
copied into the storage location for intNumber
• The DisplayValue procedure then executes

12
Passing Multiple Arguments
ShowSum(intValue1, intValue2) ‘calls ShowSum procedure

Sub ShowSum(ByVal intNum1 As Integer, _


ByVal intNum2 As Integer)
' This procedure accepts two arguments, and prints
' their sum on the form.
Dim intSum As Integer
intSum = intNum1 + intNum2
MessageBox.Show("The sum is " & intSum.ToString)
End Sub

• Multiple arguments separated by commas


• Value of first argument is copied to first
• Second to second, etc.
13
Passing Arguments ByVal or ByRef
• Arguments are usually passed ByVal
• New storage location created for procedure
• Storage location gets a copy of the value
• Any changes in value are made to the copy
• Calling procedure won’t “see” the changes
• Arguments can also be passed ByRef
• Procedure points to (references) argument’s original
storage location
• Any changes are made to the original value
• Calling procedure “sees” the changes

14
ByVal or ByRef Argument Example

• The difference between parameters passed ByVal


& ByRef
• Passed ByVal
• Calling procedure does not
“see” changes made to the
value of an argument
• Passed ByRef
• Calling procedure “sees”
changes made to the
value of an argument
15
Functions

A Function Returns a Value to the


Part of the Program That Called the
Function
16
Declaring a Function
[AccessSpecifier] Function FunctionName ([ParameterList]) _
As DataType
[Statements]
End Function

• New keyword Function


• Also new is As DataType which states the data type
of the value to be returned
• Return value is specified in a Return expression

17
Function Call Example
sngTotal = Sum(sngValue1, sngValue2)

Function Sum(ByVal sngNum1 As Single, _


ByVal sngNum2 As Single) As Single
Dim sngResult As Single
sngResult = sngNum1 + sngNum2
Return sngResult
End Function

• sngValue1 & sngValue2 must be data type Single


• Data types must agree with parameter list
• sngTotal must be Single, agrees with return value
• Tutorial 6-5 demonstrates function use
18
Returning Nonnumeric Values
Function FullName(ByVal strFirst As String, _
ByVal strLast As String) As String
Dim strName As String
strName = strLast & ", " & strFirst
Return strName
End Function

Function IsValid(intNum As Integer) As Boolean


Dim blnStatus As Boolean
If intNum >= 0 And intNum <= 100 Then
blnStatus = True
Else
blnStatus = False
End If
Return blnStatus
End Function
19

You might also like