Я читал книгу «Руководства по дизайну рамок», книгу по разработке фреймворков в .NET, с выдержками из дизайнеров фреймворка о решениях, которые они принимали в отношении каждого раздела (например, дизайн параметров, обработка исключений и т. Д.).Как проверяется параметр «высокий уровень» на стоп-кадре?
Один из советов, в соответствии с параметрами, заключается в том, чтобы проверить параметры как «высоко на стоп-кассе», насколько это возможно. Это связано с тем, что работа здесь не такая дорогостоящая, как низкая на стоп-кассе, так что штраф за производительность не так дорого стоит при проверке высоко в callstack.
Означает ли это, что когда я передаю параметры в метод или конструктор, я проверяю их перед тем, как делать что-либо еще, или делаю это непосредственно перед использованием параметров (так что может быть 100 строк кода между параметром в определение и использование параметра)?
Thanks
Я считаю, что ваш первый вывод верен, подтвердите его в последнем возможном случае, когда значение может быть изменено таким образом, что это может отрицательно повлиять на производительность или вызвать проблему. –
Да, вы правы, сначала проверяете, затем выполняете код (читайте по шаблону Design-by-Contract.) Преимущества довольно просты. Исключения стоят дорого, особенно когда они пузырятся через слои. Поэтому проверка параметров сначала, а затем выполнение кода является хорошей практикой. –
Это как только они пройдены или только до того, как они будут использованы? – dotnetdev