V3198. The variable is assigned the same value that it already holds.
Анализатор обнаружил ситуацию, когда переменной присваивается значение, которое она уже имеет.
Рассмотрим пример:
public long GetFactorial(long it)
{
long currentValue = 1;
for (int i = 1; i <= it; i++)
{
currentValue = currentValue * currentValue;
}
return currentValue;
}
Метод 'GetFactorial' должен возвращать значение факториала, соответствующее параметру. Однако этот метод всегда будет возвращать единицу. Данная ситуация возникает из-за того, что на каждой итерации цикла переменной 'currentValue' присваивается значение, которое она уже имеет.
Для исправления нужно заменить один из множителей на 'i':
for (int i = 1; i <= it; i++)
{
currentValue = currentValue * i;
}
Данная диагностика классифицируется как: