Why is this an issue?
Assignments within sub-expressions are hard to spot and therefore make the code less readable. Ideally, sub-expressions should not have
Noncompliant code example
if (string.IsNullOrEmpty(result = str.Substring(index, length))) // Noncompliant
var result = str.Substring(index, length);
Assignments inside lambda and delegate expressions are allowed.
Furthermore, the following patterns are also accepted:
var a = b = c = 10;
while ((val = GetNewValue()) > 0)
private MyClass instance;
public MyClass Instance
return instance ?? (instance = new MyClass());