Passing a Variable Number of Arguments to Procedures in VB.net
By: Steven Holzner in VB.net Tutorials on 2010-11-17
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
Add Comment
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
- Your name, rating, website address, town, country, state and comment will be publicly displayed if entered.
- Aside from the data entered into these form fields, other stored data about your comment will include:
- Your IP address (not displayed)
- The time/date of your submission (displayed)
- Your email address will not be shared. It is collected for only two reasons:
- Administrative purposes, should a need to contact you arise.
- To inform you of new comments, should you subscribe to receive notifications.
- A cookie may be set on your computer. This is used to remember your inputs. It will expire by itself.
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
- Although the administrator will attempt to moderate comments, it is impossible for every comment to have been moderated at any given time.
- You acknowledge that all comments express the views and opinions of the original author and not those of the administrator.
- You agree not to post any material which is knowingly false, obscene, hateful, threatening, harassing or invasive of a person's privacy.
- The administrator has the right to edit, move or remove any comment for any reason and without notice.
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
- Data Science
- Android
- React Native
- 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
Changes in Controls from VB6 to VB.net
Unstructured Exception Handling in VB.net
Structured Exception Handling in VB.net
Creating Sub Procedures in VB.net
Passing a Variable Number of Arguments to Procedures in VB.net
Specifying Optional Arguments with default values in Procedures in VB.net
Preserving a Variable's Values between Procedure Calls in VB.net
Throwing an Exception in VB.net
Comments