== Why is this an issue?

Having all branches of a `Select Case` or `If` chain with the same implementation indicates a problem.

In the following code:

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


[source,vbnet]
----
If b = 0 Then ' No issue, this could have been done on purpose to make the code more readable
    DoTheThing()
ElseIf
    DoTheThing()
End If
----

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

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

include::../message.adoc[]

include::../highlighting.adoc[]

'''
== Comments And Links
(visible only on this page)

include::../comments-and-links.adoc[]

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