﻿# 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:

```cpp
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:

```cpp
return expr1 ?? expr2;
```

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

```cpp
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:

```cpp
expr1 ??= expr2;
```