
Inline adoc files when they are included exactly once. Also fix language tags because this inlining gives us better information on what language the code is written in.
52 lines
968 B
Plaintext
52 lines
968 B
Plaintext
== 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[]
|