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

[source,vbnet]
----
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

[source,vbnet]
----
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
----

ifdef::env-github,rspecator-view[]

'''
== Implementation Specification
(visible only on this page)

include::message.adoc[]

endif::env-github,rspecator-view[]
