A Function returns a value. It uses a special syntax form in the VB.NET language. The Function optionally accepts one or more parameters—these are called formal parameters.
A Function is part of a Module
, Class
or Structure
. A Function is called from other Functions, Subs or Properties. It can be reused throughout a program.
This program shows the Function keyword. We provide an Area Function: this Function receives a radius. It returns a Double
that is the area of a circle with that radius.
Double
. Specifying the type of the parameter is optional but advised.Double
. After the formal parameter list, the keywords "As Double
" indicate the return type.Module Module1 ''' <summary> ''' Get area of a circle with specified radius. ''' </summary> Function Area(ByVal radius As Double) As Double Return Math.PI * Math.Pow(radius, 2) End Function Sub Main() Dim a As Double = Area(4.0) Console.WriteLine(a) End Sub End Module50.2654824574367
A Function must return a value—otherwise we must use a Subroutine. But a Function does not need to receive a value—it can have an empty parameter list.
Module Module1 Function GetID() As Integer ' This function receives no arguments. Return 100 End Function Sub Main() ' Use GetID function. Console.WriteLine(GetID()) End Sub End Module100
What is the difference between a Function and a Property? A Property is a type of Function. The Get part of a Property can be implemented as a Function.
Sub
that sets a value, it can be changed to be a Property.Module Module1 ReadOnly Property ID As Integer Get Return 100 End Get End Property Function GetID() As Integer Return 100 End Function Sub Main() ' Use property and function. Console.WriteLine("PROPERTY: {0}", ID) Console.WriteLine("FUNCTION: {0}", GetID()) End Sub End ModulePROPERTY: 100 FUNCTION: 100
A Function can only return one value. But if this value is a class
or Structure
, it can return many values in this step. ByRef
can be used to set output parameters.
Unlike a Sub
, a Function returns a value. We must return this value—if we have no return value, we need to use a Sub
instead. We can assign to the result of a Function.