rspec/rules/S1301/csharp/rule.adoc

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[]