## Why is this an issue?

Functions can return values using two different syntaxes. The modern, and correct, way to do it is to use a `Return` statement. The VB6 way, i.e. old way, is to assign a return value to the function’s name .

The VB6 syntax is obsolete as it was introduced to simplify migration from VB6 projects. The compiler will create a local variable which is implicitly returned when execution exits the function’s scope.

`Return` statement should be used instead as they are easier to read and understand.

### Noncompliant code example

    Public Function FunctionName() As Integer
        FunctionName = 42 ' Noncompliant
    End Function

    Public Function FunctionNameFromVariable() As Integer
        Dim Value As Integer = 42
        FunctionNameFromVariable = Value ' Noncompliant
    End Function

### Compliant solution

    Public Function FunctionName() As Integer
        Return 42
    End Function

    Public Function FunctionNameFromVariable() As Integer
        Dim Value As Integer = 42
        Return Value
    End Function

## Resources

- .Net documentation - Returning from a Function