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