![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
alir |
|
||||||||||||||||||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 383 Регистрация: 19.3.2005 Репутация: 2 Всего: 4 |
Частенько в общие вопросы кидают всевозможные статьи. Вот, думаю, сделаю это и я.
![]() Обзор операций рефакторинга в Visual Studio 2005. • Promote Local Variable to Parameter (перевод локальной переменной в параметр). Данный метод служит для быстрого перевода переменных функций в параметры этой функции. Т.е. пусть имеется следующий код:
Далее выделяем переменную i, вызываем операцию Promote Local Variable to Parameter и получаем результат:
! (*) – выделяемая переменная должна быть инициализирована, иначе студия не сможет ее сделать параметром. Данная проверка введена не случайно, а для поддержания концепции защищенного кода. • Extract Method (извлечение метода) Этот метод необходим для разделения инициализации переменной в некоторой функции от кода работы с этой переменной. Т.е.:
Выделяем выражение цикла (работа с переменной) и вызываем функцию Extract Method. В результате получаем еще одну функцию:
• Encapsulate Field (инкапсулирование поля) Очень простой метод. Нужен для быстрого создания свойсва из переменной.
Выбираем операцию Encapsulate Field и получаем:
• Extract Interface (извлечение интерфейса) Данная операция создает новый файл с исходным кодом, содержащий интерфейс с методами выбранного класа(структуры, интерфейса), и автоматически добавляет его к проекту и добавляет наследование этого интерфейса классу (структуре).
Применяем операцию. В появившемся диалоговом окне прописываем имя будущего файла (интерфейса) и выбераем функции, которые будут содержаться в этом интерфейсе.
• Rename (переименование) Очень простая и полезная операция! Суть ее в том, что если переименовать с помощью этой операции какое-либо поле (тип, свойство, именное пространство или метод), то оно будет переименовано во всем проекте и во всех его представлениях и не надо будет искать его по всему проекту, чтобы поменять имя. • Remove Parametres (удаление параметров) Используется для удаление параметров из функции (делегата), причем удаляется наличие параметра при вызове функции. Т.е. пусть имеется:
Ставим курсор на определение Method1, вызываем операцию Remove Parametres, указываем какой параметр удалить и получаем (например, удалим b):
Единственное, жаль, что операция не позваляет дополнительно удалить все вызовы убранного параметра в самой функции. • Recorder Parametres (замена местами параметров) Ну а эта последняя операция носит лишь условный характер, нежели полезный: параметры просто меняются местами. Т.е. первоначально:
Далее ставим курсор на Method1, вызываем операцию, устанавливаем расстановку параметров и получаем (поменяем s с b):
P.S. Вот и все доступные операции рефакторинга в Visual Studio 2005. Надеимся в следущей версии операций будет больше, и они будут более эффективные. Это сообщение отредактировал(а) alir - 11.3.2006, 01:30 |
||||||||||||||||||||||||
|
|||||||||||||||||||||||||
Exception |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 29 Всего: 186 |
Вроде как, дополнительные покупаются у DevExpress
![]() А как там реализовано, через смарт-теги? Или просто выделяешь и правой кнопкой мыши? P.S. Можно и самому такие вещи писать. DevExpress предоставляет пакет DxCore, который необходим для работы, например, Refactor for VB 2005 и CodeRush. В нем есть и элементы, необходимые для написания rich-ui плагинов и даже шаблон проекта Visual Studio. Планирую на днях взглянуть на эту вещь более детально, как только закончу обзор LINQ (ждите ![]() |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |