Having all branches of a Select Case
or If
chain with the same implementation indicates a problem.
In the following code:
Dim b As Integer = If(a > 12, 4, 4) // Noncompliant
If b = 0 Then // Noncompliant
DoTheThing()
Else
DoTheThing()
End If
Select Case i // Noncompliant
Case 1
DoSomething()
Case 2
DoSomething()
Case 3
DoSomething()
Case Else
DoSomething()
End Select
Either there is a copy-paste error that needs fixing or an unnecessary Select Case
or If
chain that needs removing.
Exceptions
This rule does not apply to If
chains without Else
, nor to Select Case
without a Case Else
clause.
If b = 0 Then ' No issue, this could have been done on purpose to make the code more readable
DoTheThing()
ElseIf
DoTheThing()
End If