
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.
59 lines
1.5 KiB
Plaintext
59 lines
1.5 KiB
Plaintext
== 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
|
|
|
|
[source,vbnet]
|
|
----
|
|
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
|
|
|
|
[source,vbnet]
|
|
----
|
|
Public Function FunctionName() As Integer
|
|
Return 42
|
|
End Function
|
|
|
|
Public Function FunctionNameFromVariable() As Integer
|
|
Dim Value As Integer = 42
|
|
Return Value
|
|
End Function
|
|
----
|
|
|
|
|
|
== Resources
|
|
|
|
* https://docs.microsoft.com/en-us/dotnet/visual-basic/language-reference/statements/function-statement#returning-from-a-function[.Net documentation - Returning from a Function]
|
|
|
|
ifdef::env-github,rspecator-view[]
|
|
|
|
'''
|
|
== Implementation Specification
|
|
(visible only on this page)
|
|
|
|
=== Message
|
|
|
|
* Use a 'Return' statement; assigning returned values to function names is obsolete.
|
|
* Do not make use of the implicit return value.
|
|
|
|
|
|
endif::env-github,rspecator-view[]
|