Passing a Variable Number of Arguments to Procedures in VB.net
By: Steven Holzner
Usually, you cannot call a procedure with more arguments than the procedure declaration specifies. When you need an indefinite number of arguments, you can declare a parameter array, which allows a procedure to accept an array of values for an argument. You do not have to know the number of elements in the parameter array when you define the procedure. The array size is determined by each call to the procedure.
Note |
In Visual Basic .NET, ParamArray arguments are always passed using ByVal. All of the arguments in the array must be of the data type of the ParamArray argument. |
Here's an example; in this case, I'll pass different numbers of arguments to a Sub procedure, DisplayMessage. As you can see in the way DisplayMessage is declared, all arguments after the first one go into the parameter array, and I can loop over the parameter array to get all arguments passed to us (note that I use the UBound function,, to determine the upper bound of the array—and notice also that I'm passing a compete array of text strings to DisplayMessage with no problem):
Module Module1 Sub Main() DisplayMessage("First message:", "Hi") DisplayMessage("Second message:", "Hello", "there") Dim TextArray() As String = {"Hello", "from", "Visual", _ "Basic"} DisplayMessage("Third message:", TextArray) Resume Next End Sub Sub DisplayMessage(ByVal Title As String, ByVal ParamArray _ MessageText() As String) Dim intLoopIndex As Integer System.Console.WriteLine(Title) For intLoopIndex = 0 To UBound(MessageText) System.Console.WriteLine(MessageText(intLoopIndex)) Next intLoopIndex End Sub End Module
Here's what you see when this code runs:
First message: Hi Second message: Hello there Third message: Hello from Visual Basic
Archived Comments
Comment on this tutorial
- Data Science
- Android
- AJAX
- ASP.net
- C
- C++
- C#
- Cocoa
- Cloud Computing
- HTML5
- Java
- Javascript
- JSF
- JSP
- J2ME
- Java Beans
- EJB
- JDBC
- Linux
- Mac OS X
- iPhone
- MySQL
- Office 365
- Perl
- PHP
- Python
- Ruby
- VB.net
- Hibernate
- Struts
- SAP
- Trends
- Tech Reviews
- WebServices
- XML
- Certification
- Interview
categories
Related Tutorials
Using Resume Next and Resume Line in VB.net
Using On Error GoTo 0 in VB.net
Getting an Exception's Number and Description in VB.net
Raising an Exception Intentionally in VB.net
Exception Filtering in the Catch Block in VB.net
Using Multiple Catch Statements in VB.net
Throwing an Exception in VB.net
Throwing a Custom Exception in VB.net
Changes in Controls from VB6 to VB.net
Unstructured Exception Handling in VB.net