
Inline adoc files when they are included exactly once. Also fix language tags because this inlining gives us better information on what language the code is written in.
88 lines
1.6 KiB
Plaintext
88 lines
1.6 KiB
Plaintext
== Why is this an issue?
|
|
|
|
In the interests of keeping code clean, the simplest possible conditional syntax should be used. That means
|
|
|
|
* using the ``++??=++`` operator for a self-assign-if-not-null operation,
|
|
* using the ``++??++`` operator for an assign-if-not-null operation, and
|
|
* using the ternary operator ``++?:++`` for assignment to a single variable.
|
|
|
|
|
|
=== Noncompliant code example
|
|
|
|
[source,csharp]
|
|
----
|
|
object a = null, b = null, x;
|
|
|
|
if (a != null) // Noncompliant; needlessly verbose
|
|
{
|
|
x = a;
|
|
}
|
|
else
|
|
{
|
|
x = b;
|
|
}
|
|
|
|
x = a != null ? a : b; // Noncompliant; better but could still be simplified
|
|
|
|
x = (a == null) ? new object() : a; // Noncompliant
|
|
|
|
if (condition) // Noncompliant
|
|
{
|
|
x = a;
|
|
}
|
|
else
|
|
{
|
|
x = b;
|
|
}
|
|
|
|
if (a == null) // Noncompliant
|
|
a = new object();
|
|
|
|
var y = null ?? new object(); // Noncompliant
|
|
|
|
a = a ?? new object(); // Noncompliant for C# 8
|
|
----
|
|
|
|
|
|
=== Compliant solution
|
|
|
|
[source,csharp]
|
|
----
|
|
object x;
|
|
|
|
x = a ?? b;
|
|
x = a ?? b;
|
|
x = a ?? new object();
|
|
x = condition ? a : b;
|
|
a ??= new object();
|
|
var y = new object();
|
|
a ??= new object();
|
|
----
|
|
|
|
|
|
ifdef::env-github,rspecator-view[]
|
|
|
|
'''
|
|
== Implementation Specification
|
|
(visible only on this page)
|
|
|
|
=== Message
|
|
|
|
Use the "[?:|??|??=]" operator here.
|
|
|
|
|
|
'''
|
|
== Comments And Links
|
|
(visible only on this page)
|
|
|
|
=== on 8 Jul 2015, 08:39:56 Tamas Vajk wrote:
|
|
\[~ann.campbell.2] LGTM
|
|
|
|
=== on 11 Dec 2015, 08:51:07 Tamas Vajk wrote:
|
|
\[~ann.campbell.2] I reformatted the description (uses a list now), and added the missing code samples.
|
|
|
|
=== on 11 Dec 2015, 13:56:45 Ann Campbell wrote:
|
|
looks good
|
|
|
|
endif::env-github,rspecator-view[]
|