Passing parameters by reference requires developers to understand the subtle differences between reference and value types. It is preferable to avoid passing parameters by reference when possible.


== Noncompliant Code Example

----
Module Module1
    Sub Foo(ByRef result As Integer) ' Non-Compliant
        result = 42
    End Sub

    Sub Main()
        Dim result As Integer
        Foo(result)
        Console.WriteLine(result)
    End Sub
End Module
----


== Compliant Solution

----
Module Module1
    Function Foo() As Integer        ' Compliant
        Return 42
    End Function

    Sub Main()
        Dim result As Integer = Foo()
        Console.WriteLine(result)
    End Sub
End Module
----

