>
>
>
V3170. Both operands of the '??' operat…


V3170. Both operands of the '??' operator are identical.

The analyzer has found that both operands used in either the '??'' or '??=' operator are the same. Most likely, this operation is erroneous. Such errors may occur as a result of a typo or inattentive copy-paste.

Consider an example of a similar error that appears when using the '??' operator:

string SomeMethod()
{
  String expr1 = Foo();
  String expr2 = Bar();
  ....

  return expr1 ?? expr1;
}

'SomeMethod' will always return the same value whether the 'expr1' variable is 'null' or not. Therefore, the 'expr1 ?? expr1' expression in 'SomeMethod' does not make sense. Most likely, there was a typo, and the correct version of the expression should look like this:

return expr1 ?? expr2;

A similar error can be made when using the '??=' operator:

void SomeMethod()
{
  String expr1 = Foo();
  String expr2 = Bar();
  ....

  expr1 ??= expr1;
  ....

  DoSmt(expr1);
}

In this case, an error similar to the one described in the previous example was made. Fixed code:

expr1 ??= expr2;

This diagnostic is classified as: