C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML
Formal parameter: Area receives one formal parameter of type Double. Specifying the type of the parameter is optional but advised.
ByVal, ByRefReturns: The Function returns a value of type Double. After the formal parameter list, the keywords "As Double" indicate the return type.
VB.NET program that demonstrates Function
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
VB.NET program that uses Function, no argument
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 Module
Output
100
Info: Properties are meant to replace getters and setters. If you have a Sub that sets a value, it can be changed to be a Property.
Tip: At the level of the implementation, Properties are similar to Functions and Subs.
PropertyAnd: 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.
VB.NET program that compares Property to Function
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 Module
Output
PROPERTY: 100
FUNCTION: 100