﻿# V3170\. Both operands of the '??' operator are identical\.

Анализатор обнаружил, что оба операнда, использующиеся в операторе '??' или '??\=', одинаковы\. Скорее всего, эта операция содержит ошибку\. Подобные ошибки могут появиться в результате опечатки или невнимательного copy\-paste\.

Рассмотрим пример подобной ошибки при использовании оператора '??':

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

  return expr1 ?? expr1;
}
```

Выражение 'expr1 ?? expr1' в методе 'SomeMethod' не имеет смысла, потому что данный метод будет возвращать одно и то же значение вне зависимости от того, содержит ли переменная 'expr1' значение 'null' или нет\. Скорее всего, произошла опечатка, и правильный вариант выражения должен выглядеть так:

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

Подобная ошибка может быть допущена и при использовании оператора '??\=': 

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

  expr1 ??= expr1;
  ....

  DoSmt(expr1);
}
```

В данном случае была допущена ошибка, аналогичная описанной в предыдущем примере\. Исправленный код:

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