bslls:NestedFunctionInParameters¶
Инициализация параметров методов и конструкторов вызовом вложенных методов (NestedFunctionInParameters)¶
- Тип: Дефект кода
- Важность: Незначительный
- Включена по умолчанию: Да
- Теги:
standard,brainoverload,badpractice
Описание диагностики¶
Не рекомендуется при передаче параметров в одну функцию применять вложенные вызовы других функций. Аналогино, не рекомендуется при инициализации параметров конструктора применять вложенные вызовы других функций или другие параметризированные конструкторы.
В то же время, если код с вложенными вызовами получается компактным (не требует переноса выражений) и легко читаемым, то вложенные вызовы допустимы.
Примеры¶
Неправильно:
СтруктураВложений.Вставить(
ПрисоединенныйФайл.Наименование,
Новый Картинка(ПолучитьИзВременногоХранилища(
ПрисоединенныеФайлы.ПолучитьДанныеФайла(ПрисоединенныйФайл.Ссылка).СсылкаНаДвоичныеДанныеФайла)));
Правильно разбивать такие вызовы на отдельные операторы с помощью вспомогательных локальных переменных:
АдресФайлаИзображения = ПрисоединенныеФайлы.ПолучитьДанныеФайла(ПрисоединенныйФайл.Ссылка).СсылкаНаДвоичныеДанныеФайла;
ДанныеИзображения = Новый Картинка(ПолучитьИзВременногоХранилища(АдресФайлаИзображения));
СтруктураВложений.Вставить(ПрисоединенныйФайл.Наименование, ДанныеИзображения);
Источники¶
Соответствие стандартам¶
- #std640, п. 6.1: Параметры процедур и функций — Диагностика «Инициализация параметров методов и конструкторов вызовом вложенных методов (NestedFunctionInParameters)» проверяет условие пункта 6.1 стандарта std640.
Источник диагностики¶
- Исходная статья
- Ревизия:
f4616cda8a216789ee40529ed857e614b9e2ea25 - Лицензия:
LGPL-3.0-or-later