Анализатор обнаружил, что оба операнда, использующиеся в операторе '??' или '??=', одинаковы. Скорее всего, эта операция содержит ошибку. Подобные ошибки могут появиться в результате опечатки или невнимательного copy-paste.
Рассмотрим пример подобной ошибки при использовании оператора '??':
string SomeMethod() { String expr1 = Foo(); String expr2 = Bar(); .... return expr1 ?? expr1; }
Выражение 'expr1 ?? expr1' в методе 'SomeMethod' не имеет смысла, потому что данный метод будет возвращать одно и то же значение вне зависимости от того, содержит ли переменная 'expr1' значение 'null' или нет. Скорее всего, произошла опечатка, и правильный вариант выражения должен выглядеть так:
return expr1 ?? expr2;
Подобная ошибка может быть допущена и при использовании оператора '??=':
void SomeMethod() { String expr1 = Foo(); String expr2 = Bar(); .... expr1 ??= expr1; .... DoSmt(expr1); }
В данном случае была допущена ошибка, аналогичная описанной в предыдущем примере. Исправленный код:
expr1 ??= expr2;
Данная диагностика классифицируется как: