Рефакторинг классов и типов (конструктор классов)
В ходе рефакторинга кода вы лучше понимаете, поддерживаете и делаете свою работу более эффективно благодаря изменению его внутренней структуры, а также способа разработки его объектов, но не его внешнего поведения. При рефакторинге кода на Visual C# .NET, Visual Basic .NET или C++ в своем проекте Visual Studio для уменьшения объема выполняемых работ, а также вероятности появления ошибок, используйте конструктор классов и окно "Сведения о классе".
Примечание
Файлы проекта могут быть доступны только для чтения, так как проект находится под контролем системы управления версиями и не извлекается. Это проект, на который указывает ссылка. Либо его файлы отмечены на диске как "только для чтения".При работе в проекте в одном из этих состояний, в зависимости от состояния проекта для сохранения результатов работы можно будет использовать разные способы.Это относится к рефакторингу кода, а также к коду, который изменяется неким другим способом, например, в ходе его непосредственного редактирования.Для получения дополнительной информации см. Display of Read-Only Information.
Общие задачи
Задача |
Справочные материалы |
---|---|
Рефакторинг классов:для разбиения класса на разделяемые классы и создания абстрактного базового класса можно использовать операции рефакторинга. |
|
Работа с интерфейсами:в конструкторе классов можно реализовать интерфейс на схеме классов путем подключения его к классу, который предоставляет код для методов интерфейса. При использовании токена Visual C# также можно извлекать один или несколько открытых членов из типа в новый интерфейс. |
|
Рефакторинг типов, членов типов и параметров:с помощью конструктора классов можно легко вносить изменения, например, переименовывать тип или члены типов. Можно переопределять члены типов или перемещать их из одного типа в другой. Можно легко создавать создавать типы nullable (допускающие значение null)). При использовании токена Visual C# можно изменять порядок параметров метода. |
Реализация абстрактных базовых классов
Для реализации абстрактного класса можно использовать конструктор классов.
Для данной процедуры предполагается следующее:
Проект содержит абстрактный класс.
Абстрактный класс содержит абстрактные члены.
Абстрактный класс является базовым классом в отношении наследования с другим классом. (Производный класс не обязательно должен быть абстрактным классом.)
Реализация абстрактного класса
- Щелкните правой кнопкой мыши производный класс, выберите IntelliSense, затем нажмите кнопку Реализовать абстрактный класс. Все абстрактные члены из базового класса будут реализованы в производном классе.
Дополнительные сведения см. в разделах Практическое руководство. Создание наследования между типами (конструктор классов) и Практическое руководство. Создание типов с помощью конструктора классов.
Извлечение членов в интерфейс
Из типа в новый интерфейс можно извлечь один или несколько открытых членов.
Извлечение членов в новый интерфейс
В конструкторе классов щелкните правой кнопкой мыши тип, содержащий член или члены, которые нужно извлечь, выберите пункт Рефакторинг и нажмите кнопку Извлечение интерфейса.
В диалоговом окне "Извлечение интерфейса" отображаются значения по умолчанию для имени интерфейса и имени файла кода, в котором он будет объявлен. Примите значения по умолчанию или измените их.
В области Выбор открытых членов для формирования интерфейса установите или снимите флажок рядом с членами, которые нужно извлечь в новый интерфейс, и нажмите кнопку ОК.
Будет создан новый интерфейс, а файл, который его содержит, будет добавлен в проект.
Переопределение членов типа
В конструкторе классов можно разрешать членам, например, методам и свойствам в дочернем классе, переопределять члены, унаследованные из базового класса. Переопределение члена возможно только в том случае, если соблюдается следующее условие:
- Базовый метод, подлежащий переопределению, должен быть виртуальным, абстрактным или переопределением. (Он не может быть не виртуальным или статическим.)
Переопределение члена
На схеме классов щелкните правой кнопкой мыши фигуру класса и нажмите кнопку IntelliSense, а затем Переопределить Члены.
Появляется диалоговое окно, отображающее переопределяемые члены.
Выберите член в списке.
Член с таким же именем, модификатором доступа и возвращаемым значением, отображается в классе, и для его свойства модификатора наследования устанавливается значение Overrides в Visual Basic или override в C#.
Переименование типов и членов типов
В конструкторе классов тип или член типа можно переименовать на схеме классов или в окне «Свойства». В окне "Сведения о классе" можно изменить имя члена, но не тип. Переименование типа или члена типа распространяется на все окна и места кода, где применялось старое имя.
Изменение имени в конструкторе классов
На схеме классов выберите тип или член.
Имя члена становится доступным для редактирования.
Введите новое имя для типа или члена типа.
Изменение имени в окне "Подробные сведения о классе"
Для отображения окна "Подробные сведения о классе" щелкните правой кнопкой мыши тип или член типа и нажмите кнопку Сведения о классе.
Появляется окно "Сведения о классе".
В столбце Имя измените имя члена типа.
Для перемещения фокуса с ячейки нажмите клавишу ВВОД или щелкните вне области ячейки.
Примечание
В окне "Сведения о классе" можно изменить имя члена, но не тип.
Изменение имени в окне "Свойства"
На схеме классов или в окне "Сведения о классе" щелкните правой кнопкой мыши тип или член и выберите Свойства.
Появляется окно "Свойства", в котором отображаются свойства для типа или члена типа.
В свойстве Имя измените имя типа или члена типа.
Изменение имени распространится на все окна и места кода в текущем проекте, где применялось старое имя.
Изменение порядка параметров
В конструкторе классов можно изменить порядок параметров метода в типах.
Примечание
Необязательные параметры должны находиться в конце списка параметров.Дополнительные сведения о способах создания необязательных параметров с помощью конструктора классов см в разделе Adding Parameters to Methods.
Изменение порядка параметров
На схеме классов разверните фигуру типа, а затем секцию Методы.
В секции Методы щелкните правой кнопкой мыши метод с параметрами, порядок которых необходимо изменить, выберите пункт Рефакторинг и нажмите кнопку Изменение порядка параметров.
Появляется диалоговое окно Изменение порядка параметров.
В диалоговом окне Изменение порядка параметров разместите параметры в требуемом порядке и нажмите кнопку ОК.
Порядок параметров изменяется в коде и в фигуре на схеме классов.
Перемещение членов типа из одного типа в другой
С помощью конструктора классов можно перемещать член типа из одного типа в другой, если оба типа отображаются на текущей схеме классов.
Перемещение члена типа из одного типа в другой
В типе, который отображается в рабочей области конструктора, щелкните правой кнопкой мыши член, который необходимо переместить в другой тип, и нажмите кнопку Вырезать.
Щелкните правой кнопкой мыши целевой тип и нажмите Вставить.
Свойство удаляется из исходного типа и появляется в целевом типе.
Связанные разделы
Заголовок |
Описание |
---|---|