== Why is this an issue?

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)

=== Message

Refactor the code and pass "xxx" by value instead.


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