61 lines
1.0 KiB
Plaintext
61 lines
1.0 KiB
Plaintext
== 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[]
|