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

Инициализация параметров методов и конструкторов вызовом вложенных методов (NestedFunctionInParameters)

  • Тип: Дефект кода
  • Важность: Незначительный
  • Включена по умолчанию: Да
  • Теги: standard, brainoverload, badpractice

Описание диагностики

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

В то же время, если код с вложенными вызовами получается компактным (не требует переноса выражений) и легко читаемым, то вложенные вызовы допустимы.

Примеры

Неправильно:

СтруктураВложений.Вставить(
 ПрисоединенныйФайл.Наименование,
 Новый Картинка(ПолучитьИзВременногоХранилища(
  ПрисоединенныеФайлы.ПолучитьДанныеФайла(ПрисоединенныйФайл.Ссылка).СсылкаНаДвоичныеДанныеФайла)));

Правильно разбивать такие вызовы на отдельные операторы с помощью вспомогательных локальных переменных:

АдресФайлаИзображения = ПрисоединенныеФайлы.ПолучитьДанныеФайла(ПрисоединенныйФайл.Ссылка).СсылкаНаДвоичныеДанныеФайла;
ДанныеИзображения = Новый Картинка(ПолучитьИзВременногоХранилища(АдресФайлаИзображения));
СтруктураВложений.Вставить(ПрисоединенныйФайл.Наименование, ДанныеИзображения);

Источники

Соответствие стандартам

Источник диагностики