Рефакторинг классов и типов (конструктор классов)

В ходе рефакторинга кода вы лучше понимаете, поддерживаете и делаете свою работу более эффективно благодаря изменению его внутренней структуры, а также способа разработки его объектов, но не его внешнего поведения. При рефакторинге кода на Visual C# .NET, Visual Basic .NET или C++ в своем проекте Visual Studio для уменьшения объема выполняемых работ, а также вероятности появления ошибок, используйте конструктор классов и окно "Сведения о классе".

Примечание

Файлы проекта могут быть доступны только для чтения, так как проект находится под контролем системы управления версиями и не извлекается. Это проект, на который указывает ссылка. Либо его файлы отмечены на диске как "только для чтения".При работе в проекте в одном из этих состояний, в зависимости от состояния проекта для сохранения результатов работы можно будет использовать разные способы.Это относится к рефакторингу кода, а также к коду, который изменяется неким другим способом, например, в ходе его непосредственного редактирования.Для получения дополнительной информации см. Display of Read-Only Information.

Общие задачи

Задача

Справочные материалы

Рефакторинг классов:для разбиения класса на разделяемые классы и создания абстрактного базового класса можно использовать операции рефакторинга.

Работа с интерфейсами:в конструкторе классов можно реализовать интерфейс на схеме классов путем подключения его к классу, который предоставляет код для методов интерфейса. При использовании токена Visual C# также можно извлекать один или несколько открытых членов из типа в новый интерфейс.

Рефакторинг типов, членов типов и параметров:с помощью конструктора классов можно легко вносить изменения, например, переименовывать тип или члены типов. Можно переопределять члены типов или перемещать их из одного типа в другой. Можно легко создавать создавать типы nullable (допускающие значение null)). При использовании токена Visual C# можно изменять порядок параметров метода.

Реализация абстрактных базовых классов

Для реализации абстрактного класса можно использовать конструктор классов.

Для данной процедуры предполагается следующее:

  • Проект содержит абстрактный класс.

  • Абстрактный класс содержит абстрактные члены.

  • Абстрактный класс является базовым классом в отношении наследования с другим классом. (Производный класс не обязательно должен быть абстрактным классом.)

Реализация абстрактного класса

  • Щелкните правой кнопкой мыши производный класс, выберите IntelliSense, затем нажмите кнопку Реализовать абстрактный класс. Все абстрактные члены из базового класса будут реализованы в производном классе.

Дополнительные сведения см. в разделах Практическое руководство. Создание наследования между типами (конструктор классов) и Практическое руководство. Создание типов с помощью конструктора классов.

Извлечение членов в интерфейс

Из типа в новый интерфейс можно извлечь один или несколько открытых членов.

Извлечение членов в новый интерфейс

  1. В конструкторе классов щелкните правой кнопкой мыши тип, содержащий член или члены, которые нужно извлечь, выберите пункт Рефакторинг и нажмите кнопку Извлечение интерфейса.

    В диалоговом окне "Извлечение интерфейса" отображаются значения по умолчанию для имени интерфейса и имени файла кода, в котором он будет объявлен. Примите значения по умолчанию или измените их.

  2. В области Выбор открытых членов для формирования интерфейса установите или снимите флажок рядом с членами, которые нужно извлечь в новый интерфейс, и нажмите кнопку ОК.

    Будет создан новый интерфейс, а файл, который его содержит, будет добавлен в проект.

Переопределение членов типа

В конструкторе классов можно разрешать членам, например, методам и свойствам в дочернем классе, переопределять члены, унаследованные из базового класса. Переопределение члена возможно только в том случае, если соблюдается следующее условие:

  • Базовый метод, подлежащий переопределению, должен быть виртуальным, абстрактным или переопределением. (Он не может быть не виртуальным или статическим.)

Переопределение члена

  1. На схеме классов щелкните правой кнопкой мыши фигуру класса и нажмите кнопку IntelliSense, а затем Переопределить Члены.

    Появляется диалоговое окно, отображающее переопределяемые члены.

  2. Выберите член в списке.

    Член с таким же именем, модификатором доступа и возвращаемым значением, отображается в классе, и для его свойства модификатора наследования устанавливается значение Overrides в Visual Basic или override в C#.

Переименование типов и членов типов

В конструкторе классов тип или член типа можно переименовать на схеме классов или в окне «Свойства». В окне "Сведения о классе" можно изменить имя члена, но не тип. Переименование типа или члена типа распространяется на все окна и места кода, где применялось старое имя.

Изменение имени в конструкторе классов

  1. На схеме классов выберите тип или член.

    Имя члена становится доступным для редактирования.

  2. Введите новое имя для типа или члена типа.

Изменение имени в окне "Подробные сведения о классе"

  1. Для отображения окна "Подробные сведения о классе" щелкните правой кнопкой мыши тип или член типа и нажмите кнопку Сведения о классе.

    Появляется окно "Сведения о классе".

  2. В столбце Имя измените имя члена типа.

  3. Для перемещения фокуса с ячейки нажмите клавишу ВВОД или щелкните вне области ячейки.

    Примечание

    В окне "Сведения о классе" можно изменить имя члена, но не тип.

Изменение имени в окне "Свойства"

  1. На схеме классов или в окне "Сведения о классе" щелкните правой кнопкой мыши тип или член и выберите Свойства.

    Появляется окно "Свойства", в котором отображаются свойства для типа или члена типа.

  2. В свойстве Имя измените имя типа или члена типа.

    Изменение имени распространится на все окна и места кода в текущем проекте, где применялось старое имя.

Изменение порядка параметров

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

Примечание

Необязательные параметры должны находиться в конце списка параметров.Дополнительные сведения о способах создания необязательных параметров с помощью конструктора классов см в разделе Adding Parameters to Methods.

Изменение порядка параметров

  1. На схеме классов разверните фигуру типа, а затем секцию Методы.

  2. В секции Методы щелкните правой кнопкой мыши метод с параметрами, порядок которых необходимо изменить, выберите пункт Рефакторинг и нажмите кнопку Изменение порядка параметров.

    Появляется диалоговое окно Изменение порядка параметров.

  3. В диалоговом окне Изменение порядка параметров разместите параметры в требуемом порядке и нажмите кнопку ОК.

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

Перемещение членов типа из одного типа в другой

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

Перемещение члена типа из одного типа в другой

  1. В типе, который отображается в рабочей области конструктора, щелкните правой кнопкой мыши член, который необходимо переместить в другой тип, и нажмите кнопку Вырезать.

  2. Щелкните правой кнопкой мыши целевой тип и нажмите Вставить.

    Свойство удаляется из исходного типа и появляется в целевом типе.

Связанные разделы

Заголовок

Описание

Просмотр типов и отношений (конструктор классов)

Конструирование классов и типов (конструктор классов)