Использование арифметических операций при конкатенации со строками
Не рекомендуется использование арифметических операций в выражении, которое добавляется к строковой константе. Подобные операции могут привести к ошибкам выполнения или неверному результату операции. Если эти операции необходимы, то для указания приоритета операций желательно использовать скобки.
Пример неверного кода:
будет выдана ошибка выполнения
ВывестиСообщение("Информация: " + КоличествоЗаписей - 1);
ВывестиСообщение("Информация: " + 100 - КоличествоЗаписей);
или будет получен неверный результат. Например, если КоличествоЗаписей равно 6
, то получим результат-строку "Информация: 61" вместо "Информация: 7"
ВывестиСообщение("Информация: " + КоличествоЗаписей - 1);
ВывестиСообщение("Информация: " + 1 + КоличествоЗаписей);
Правильнее использовать скобки
ВывестиСообщение("Информация: " + (КоличествоЗаписей - 1));
ВывестиСообщение("Информация: " + (КоличествоЗаписей + 1));
См. также
- Arithmetic operators should only have numbers as operands
- Strings should not be concatenated using "+" or "&" in a loop
Экранирование кода
// sonar:ArithmeticalOperationsWithString:off
// sonar:ArithmeticalOperationsWithString:on