Анализ кода возвращается с предложением о не использовании параметров

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

, Который не означает, Вы не должны использовать исключения, однако, в производительности критический код, Вы не должны, возможно, использовать слишком много попыток и также не выдавать исключения слишком часто.

5
задан Scott Vercuski 10 September 2009 в 12:04
поделиться

4 ответа

Каждое предупреждение Code Analysis имеет связанную документацию, к которой вы можете получить доступ, выделив предупреждение и нажав F1 . Вы также можете щелкнуть правой кнопкой мыши по элементу, чтобы получить помощь.

В любом случае, вот документация , которая объясняет это конкретное предупреждение .

Я бы сказал, что есть несколько случаев, когда параметры out по-прежнему являются хорошим выбором - особенно когда речь идет об идиоме кодирования TryParse, потому что это

10
ответ дан 18 December 2019 в 08:29
поделиться

Я отключил это предупреждение в большинстве своих проектов. Поскольку я знаю, что когда я использую параметр out, у меня есть веская причина для этого, так как я стараюсь их вообще избегать.

Я мог себе представить, что при работе с несколькими людьми над проектом вы можете включить это предупреждение, если хотите провести некоторые проверки кода ...

2
ответ дан 18 December 2019 в 08:29
поделиться

Мне кажется, что многие предупреждения анализа кода имеют отношение к написанию кода API, который будут использовать третьи стороны. Ваше правило с параметрами out - классический случай: отчасти причина их не использования заключается в том, что многие другие программисты не знают о них.

Если они не соответствуют тому, что вы пишете, то переключитесь вне правил анализа кода, которые вам не подходят. Лично я склонен отключать правила именования, переносимости и взаимодействия, поскольку они не имеют отношения к типу кода, который я пишу.

3
ответ дан 18 December 2019 в 08:29
поделиться

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

Для вашей ситуации. Если у вас есть только один возвращаемый параметр, верните его обратно из функции.

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

Если вы иметь много параметров для возврата, которые тесно связаны друг с другом,

4
ответ дан 18 December 2019 в 08:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: