Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CSharp_Prog_Guide.doc
Скачиваний:
16
Добавлен:
16.11.2019
Размер:
6.22 Mб
Скачать

Оптимизация

Оптимизация — это процесс усовершенствования кода после его написания путем изменения внутренней структуры кода без изменения его внешнего поведения.

Многопроектная оптимизация

Среда разработки Visual Studio поддерживает многопроектная оптимизация для проектов, входящих в одно решение. Все операции оптимизации, исправляющие ссылки между файлами, выполняют исправление ссылок во всех проектах, реализованных на одном языке. Это действует в отношении всех ссылок между проектами. Например, если консольное приложение содержит ссылки на библиотеку классов, то при переименовании типа в библиотеке классов (с помощью операции оптимизации Rename) содержащиеся в консольном приложении ссылки на тип в библиотеке классов также будут обновлены.

Диалоговое окно "Предварительный просмотр изменений"

Многие операции оптимизации дают возможность просматривать все изменения ссылок, которые будут выполнены операцией оптимизации в коде, до осуществления этих изменений. Для этих операций оптимизации в диалоговом окне оптимизации отображается параметр Предварительный просмотр изменений ссылок. После того как этот параметр будет выбран и операция оптимизации будет принята, откроется Диалоговое окно "Предварительный просмотр изменений". Обратите внимание, что окно Предварительный просмотр изменений имеет два представления. В нижнем представлении отображается код со всеми обновлениями ссылок в связи с выполнением операции оптимизации. Нажатие кнопки Отмена в диалоговом окне Предварительный просмотр изменений приводит к остановке выполнения операции оптимизации, и никаких изменений в код не вносится.

Допускающая наличие ошибок оптимизация

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

Extract Method

Extract Method is a refactoring operation that provides an easy way to create a new method from a code fragment in an existing member.

Using Extract Method, you can create a new method by extracting a selection of code from inside the code block of an existing member. The new, extracted method contains the selected code, and the selected code in the existing member is replaced with a call to the new method. Turning a fragment of code into its own method lets you quickly and accurately reorganize code for better reuse and readability.

Extract Method has the following benefits:

  • Encourages best coding practices by emphasizing discrete, reusable methods.

  • Encourages self-documenting code through good organization.

When descriptive names are used, high-level methods can read more like a series of comments.

  • Encourages the creation of finer-grained methods to simplify overriding.

  • Reduces code duplication.

Извлечение метода

Извлечение метода — это операция оптимизации, обеспечивающая простой способ создания нового метода из фрагмента кода существующего члена.

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

Операция Извлечение метода позволяет получить следующие преимущества:

  • Способствует использованию лучших методов программирования, выделяя отдельные, многократно используемые методы.

  • Способствует получению самодокументирующего кода за счет хорошей организации.

При использовании описательных имен методы верхнего уровня можно читать как последовательности комментариев.

  • Способствует созданию сильно детализированных методов для упрощения переопределения.

  • Сокращает дублирование кода.

How to: Refactor Code with Extract Method

The following procedure describes how to create a new method from a code fragment of an existing member. Use this procedure to perform the Extract Method refactoring operation.

To use Extract Method

  1. Create a console application.

  2. In the Code Editor, select the code fragment you want to extract:

    double area = PI * radius * radius.

  3. On the Refactor menu, click Extract Method.

The Extract Method dialog box appears.

Alternatively, you can also type the keyboard shortcut CTRL+R, M to display the Extract Method dialog box.

You can also right-click the selected code, point to Refactor, and then click Extract Method to display the Extract Method dialog box.

  1. Specify a name for the new method, such as CircleArea, in the New Method Name box.

A preview of the new method signature displays under Preview Method Signature.

  1. Click OK.

Example

To set up this example, create a console application named ExtractMethod, and then replace Program with the following code.

class A

{

const double PI = 3.141592;

double CalculatePaintNeeded(double paintPerUnit, double radius)

{

// Select any of the following:

// 1. The entire next line of code.

// 2. The right-hand side of the next line of code.

// 3. Just "PI *" of the right-hand side of the next line

// of code (to see the prompt for selection expansion).

// 4. All code within the method body.

// ...Then invoke Extract Method.

double area = PI * radius * radius;

return area / paintPerUnit;

}

}