Skip to content

Latest commit

 

History

History
56 lines (39 loc) · 4.04 KB

File metadata and controls

56 lines (39 loc) · 4.04 KB

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

Тип Поддерживаются
языки
Важность Включена
по умолчанию
Время на
исправление (мин)
Теги
Дефект кода BSL
OS
Незначительный Да 2 standard
brainoverload
badpractice

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

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

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

Примеры

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

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

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

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

Источники

Сниппеты

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

// BSLLS:NestedFunctionInParameters-off
// BSLLS:NestedFunctionInParameters-on

Параметр конфигурационного файла

"NestedFunctionInParameters": false