VB.NET Function

The VB.NET programming language

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.

Tip:A Function is called from other Functions, Subs or Properties. It can be reused throughout a program.

Example

Class shapes

This is a simple example program that 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. Its body is only one line long.

Formal parameter:Area receives one formal parameter of type Double. Specifying the type of the parameter is optional but advised.

Returns:The Function returns a value of type Double. After the formal parameter list, the keywords "As Double" indicate the return type.

Program that demonstrates Function: VB.NET

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 Module

Output

50.2654824574367

Functions vs. Properties

Property

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. A Property is a special kind of Function—it indicates a different sort of behavior.

Properties are meant to replace getters and setters. So if you have a Sub that simply sets a value, it can be changed to be a Property. And if you have a Function that returns a value, it too can be changed.

Tip:At the level of the implementation, Properties are similar to Functions and Subs.

PropertyAbstract squares

And:If you want to, you can change all Properties on your types to Functions and Subs. You won't get in trouble for doing this.

But:On existing types, such as those in the .NET Framework, you must use the Property syntax if the member is a Property.

I have programs that I use regularly but don't share with others. I avoid Properties in my custom code: this is because the syntax doesn't help my understanding of the code. It just adds more keywords and makes my life harder.

Summary

A Function is just like a Sub, except it returns a value. And a Function must return this value—if we have no return value, we need to use a Sub instead. In an expression, a Function's result can be assigned to a Dim.


VB.NET: Sub