Previous section   Next section

5.2 Method Arguments

The behavior of a class is defined by the methods of that class. To make your methods as flexible as possible, you can define parameters: information passed into the method when the method is invoked. Thus, rather than having to write one method when you want to sort your ListBox from A-Z and a second method when you want to sort it from Z-A, you define a more general Sort( ) method and pass in a parameter specifiying the order of the sort.

Methods can take any number of parameters.[3] The parameter list follows the method name and is enclosed in parentheses. Each parameter's type is identified along with the name of the parameter using the As keyword.

[3] The terms "argument" and "parameter" are often used interchangeably, though some programmers insist on differentiating between the parameter declaration and the arguments passed in when the method is invoked.

For example, the following declaration defines a sub procedure (thus, it returns no value) named MyMethod( ) which takes two parameters, an integer and a button:

Sub MyMethod (firstParam As Integer, secondParam As Button)
  ' ...
End Sub

Within the body of the method, the parameters act as local variables, as if you had declared them in the body of the method and initialized them with the values passed in. Example 5-4 illustrates how you pass values into a method, in this case values of type Integer and Single.

The Visual Studio .NET editor will mark your parameters as ByVal, indicating that the parameter is passed "by value."

ByVal firstParam As Integer

When a parameter is passed by value, a copy is made. This is as opposed to passing "by reference." The ByVal keyword and its implications are discussed later in this chapter.

Example 5-4. Passing parameters
Option Strict On
Imports System

Public Class TestClass
   Sub SomeMethod( _
      ByVal firstParam As Integer, _
      ByVal secondParam As Single)

      Console.WriteLine( _
         "Here are the parameters received: {0}, {1}", _
         firstParam, secondParam)

   End Sub
End Class

Module Module1

   Sub Main( )
      Dim howManyPeople As Integer = 5
      Dim pi As Single = 3.14F

      Dim tc As New TestClass( )
      tc.SomeMethod(howManyPeople, pi)

   End Sub

End Module

Output:
Here are the parameters received: 5, 3.14

If Option Strict is On, when you pass in a Single with a decimal part (3.14) you must append the letter F (3.14F) to signal to the compiler that the value is a Single, and not a Double.

The method SomeMethod( ) takes an Integer and a Single and displays them using Console.WriteLine( ). The parameters, which are named firstParam and secondParam, are treated as local variables within SomeMethod( ).

In the calling method (Main), two local variables (howManyPeople and pi) are created and initialized. These variables are passed as the arguments to SomeMethod( ). The compiler maps howManyPeople to firstParam and pi to secondParam, based on their relative positions in the parameter list.


  Previous section   Next section
Top