== Why is this an issue?

``++switch++`` statements and expressions are useful when there are many different cases depending on the value of the same expression.


When a ``++switch++`` statement or expression is simple enough, the code will be more readable with a single ``++if++``, ``++if-else++`` or ternary conditional operator.

=== Noncompliant code example

[source,csharp]
----
switch (variable)
{
  case 0:
    doSomething();
    break;
  default:
    doSomethingElse();
    break;
}

var foo = variable switch
{
  0 => doSomething(),
  _ => doSomethingElse(),
}
----

=== Compliant solution

[source,csharp]
----
if (variable == 0)
{
  doSomething();
}
else
{
  doSomethingElse();
}

var foo = variable == 0
  ? doSomething() 
  : doSomethingElse();
----

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

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

include::../message.adoc[]

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

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

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