Программирование и работа с кодом
Оценить
(0 голоса)
Когда классы содержат один и тот же набор параметров, может быть очень полезным опре­делить общий контракт для всех классов. Разумеется, это делается при помощи интерфейса. Основные преимущества использования интерфейсов состоят в том, что ваш код становится более читабельным, его легче обслуживать, и работает он одинаково для похожих членов. Однако разработчики часто не понимают общности своих классов до тех пор, пока их код не написан. Это иногда делает создание интерфейсов весьма болезненной операцией. Редактор C# в Visual Studio 2008 предоставляет операцию рефакторинга Extract Interface (извлечение интерфейса) для облегчения этого процесса. Она позволяет вам взять сущест­вующий класс или структуру и автоматически сгенерировать…
Оценить
(0 голоса)
Для доступа к операции рефакторинга Extract Interface вы должны сначала поместить ваш курсор в класс, структуру или другой интерфейс, который содержит те члены, которые вы хотите извлечь. Затем вы можете использовать меню Refactor и выбрать позицию меню Extract Interface. Вы можете также вызвать Extract Interface из контекстного меню (при помощи щелчка правой кнопкой мыши) или из визуального конструктора классов. Совет Для вызова операции извлечения интерфейса с клавиатуры сначала поместите кур­сор в класс, структуру или интерфейс, который содержит те члены, которые вы хотите извлечь. Затем сыграйте аккорд <Ctrl>+<R>, <Ctrl>+<l>.
Оценить
(0 голоса)
Для того чтобы лучше понять операцию извлечения интерфейса, давайте рассмотрим при­мер. Предположим, что вы анализируете свой код и замечаете, что некоторые ваши объекты имеют аналогичные свойства и методы. Предположим, что объекты Customer, Vendor, Manufacturer, SalesAgent и Product содержат свойства Id, Name и Description, a также методы Load, Save и Delete. В этом случае вам следует рассмотреть возможность извлечения этой общности в стандартный интерфейс, который будет реализовываться каж­дым из ваших объектов. Посмотрим, как в этом отношении нам может помочь операция рефакторинга Extract Interface. Сначала вы помещаете курсор на целевой класс, члены которого вы хотите извлечь. Для нашего примера выберите класс Customer.…
Оценить
(0 голоса)
Иногда вам необходимо изменить сигнатуры ваших методов (удалить элемент, добавить локальную переменную в качестве параметра или изменить порядок существующих пара­метров).   Эти изменения требуют также и корректировки всех вызовов данного метода. Вы­полнение такой корректировки вручную может привести к внесению в код новых ошибок. Предположим, что вы хотите поменять местами два параметра одного типа (например, типа int). Если вы забудете изменить вызов метода, то возможно это и будет работать, но рабо­тать оно будет неправильно. Найти такие ошибки бывает непросто. Поэтому Visual Studio предоставляет операции рефакторинга для удаления и переупорядочивания параметров, а также для превращения локальной переменной в параметр.
Оценить
(0 голоса)
Операция рефакторинга Remove Parameters (Удаление параметров) позволяет вам выбрать один или более параметров данного метода, конструктора или делегата и удалить их из ме­тода. Она делает также обновление всех вызовов данного метода и удаляет значение, пере­даваемое параметру. Операция Remove Parameters вызывается при помощи размещения курсора внутри сигна­туры метода и последующего выбора в меню Refactor пункта Remove Parameters. Вы мо­жете также добраться до этой операции через контекстное меню (щелчок правой кнопкой мыши). Кроме того, эта операция доступна также в визуальном конструкторе классов и в окне Class Details. Совет Для вызова с клавиатуры операции удаления параметров сначала поместите курсор в метод, содержащий параметры,…
Оценить
(0 голоса)
Часто встречается объявление локальной переменной внутри метода и передача этой локальной переменной в качестве вызова другого метода. Если вы используете опе­рацию рефакторинга для удаления параметра вызываемого вами метода, то локаль­ная переменная в вашем вызывающем методе все равно останется. Будьте внима­тельны — нужно ли вам это? Если нет, то вам придется удалить локальную переменную вручную.
Оценить
(0 голоса)
Очень часто разработчику приходится брать переменную из метода и делать ее параметром метода. Например, вы можете найти внутри метода значение и присвоить это значение ло­кальной переменной. Вместо того чтобы делать поиск внутри метода, вы могли бы передать это значение в метод (вы могли бы использовать операцию рефакторинга "извлечение мето­да" для того, чтобы выделить присваивание значения в новый метод). Такая трансформация локальной переменной в параметр может быть выполнена автомати­чески при помощи операции рефакторинга Promote Local Variable to Parameter. Она по­зволяет выбрать локальный член данного метода и ввести его в состав параметров данного метода. Инструмент рефакторинга обновляет также и все вызовы метода.…
Оценить
(0 голоса)
Константы ведут себя как самый лучший тип локальных переменных для превращения в параметры. Причина в том, что нет проблемы с обновлением вызывающих клиентов. Если у вас есть локальная переменная с присвоенным ей постоянным значением, то вы можете об­новить вызовы этим фиксированным значением. Однако когда вы превращаете переменную, которая содержит вызов объекта в присваива­нии, то получите предупреждение, показанное на рис. 9.20. Превращение переменной, при­сваивание которой является результатом вызова другого метода, требует того, чтобы вызо­вы (которые необходимо обновить в результате продвижения) также имели возможность вызвать объект, который делает присваивание. Предположим, что у вас есть объявление переменной и присваивание: int Customerld = GetCustomerFromOrder(orderld);…
Оценить
(0 голоса)
Обычно вы перемещаете параметры метода для повышения читабельности и облегчения сопровождения кода. Возможно, вы захотите разместить более важные параметры первыми в сигнатуре метода, либо вы пожелаете поддерживать порядок параметров аналогичным для всех схожих методов или перегрузок. Операция рефакторинга Reorder Parameters позволя­ет вам изменить порядок параметров метода, конструктора или делегата. Она также обнов­ляет все вызовы метода и переставляет передаваемые в вызове параметры. Вы вызываете операцию перестановки параметров при помощи установки курсора внутри сигнатуры метода (содержащего параметры, которые вы хотите переставить), а затем в ме­ню Refactor выбираете пункт Reorder Parameters. Вы можете также получить доступ к этой операции через контекстное меню (щелчок…
Оценить
(0 голоса)
Довольно часто приходится из закрытого поля вашего объекта создавать свойство. Эти поля могли быть созданы как закрытые потому, что они использовались только внутренним для объекта образом. Либо разработчик мог просто определить открытое поле (вместо того, чтобы инкапсулировать его как свойство). В любом случае, если вам нужно изготовить фак­тическое свойство из поля, то вы можете сделать это при помощи операции рефакторинга Encapsulate Field (Инкапсуляция поля).
© 2017 www.visualstudios.ru. Все права защищены.