Перейти к содержанию

Использование арифметических операций при конкатенации со строками

Не рекомендуется использование арифметических операций в выражении, которое добавляется к строковой константе. Подобные операции могут привести к ошибкам выполнения или неверному результату операции. Если эти операции необходимы, то для указания приоритета операций желательно использовать скобки.

Пример неверного кода:

будет выдана ошибка выполнения

ВывестиСообщение("Информация: " + КоличествоЗаписей - 1);
ВывестиСообщение("Информация: " + 100 - КоличествоЗаписей);

или будет получен неверный результат. Например, если КоличествоЗаписей равно 6, то получим результат-строку "Информация: 61" вместо "Информация: 7"

ВывестиСообщение("Информация: " + КоличествоЗаписей - 1);
ВывестиСообщение("Информация: " + 1 + КоличествоЗаписей);

Правильнее использовать скобки

ВывестиСообщение("Информация: " + (КоличествоЗаписей - 1));
ВывестиСообщение("Информация: " + (КоличествоЗаписей + 1));

См. также

Экранирование кода

// sonar:ArithmeticalOperationsWithString:off
// sonar:ArithmeticalOperationsWithString:on