Visual studio переименовать класс

Обновлено: 07.07.2024

Файлы проекта могут быть доступны только для чтения, так как проект находится под контролем системы управления версиями и не извлекается. Это проект, на который указывает ссылка. Либо его файлы отмечены на диске как файлы только для чтения. При работе в проекте в одном из этих состояний, в зависимости от состояния проекта для сохранения результатов работы можно будет использовать разные способы. Это относится к рефакторингу кода, а также к коду, который изменяется неким другим способом, например, в ходе его непосредственного редактирования.

Стандартные задачи

Задача Вспомогательное содержимое
Рефакторинг классов: для разбиения класса на разделяемые классы и создания абстрактного базового класса можно использовать операции рефакторинга. - Практическое руководство. Разделение класса на разделяемые классы
Работа с интерфейсами: в конструкторе классов можно реализовать интерфейс на схеме классов путем подключения его к классу, который предоставляет код для методов интерфейса. - Практическое руководство. Реализация интерфейса
Типы рефакторинга, члены типов и параметры: при помощи конструктора классов можно переименовывать типы, переопределять члены типов или перемещать их из одного типа в другой. Можно также создать типы, допускающие значение NULL. - Переименование типов и членов типов
- Перемещение членов типа из одного типа в другой
- Практическое руководство. Создание типа, допускающего значение NULL

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

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

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

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

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

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

Переименование в окне "Сведения о классах"

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

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

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

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

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

Переименование в окне "Свойства"

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

Появляется окно Свойства со свойствами для типа или члена типа.

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

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

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

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

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

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

Я использую Visual Studio 2010 для компиляции моего проекта C++, и компоновщик блеванет на два моих файла с одинаковым именем, но они находятся в совершенно разных каталогах. Как я могу заставить компоновщик распознать, что это разные файлы?

Есть ли у кого-нибудь способ добавить несколько папок и (существующих) файлов в этих папках в проект Visual Studio за один шаг (или с помощью макроса)? Предположим, что все папки и файлы были скопированы/вставлены в папку проекта, где они должны находиться относительно папки проекта, но на самом.

Переименование файла работает нормально - он предложит изменить код в соответствии с:

enter image description here

Если вы переименуете класс, то - действительно, по умолчанию этого не происходит. Обратите внимание, что на самом деле нет необходимости в том, чтобы эти два совпадали. Но в конечном счете, переименование-это всего лишь f2 .

Начиная с Visual Studio 2015 Preview 5 , контекстное меню "Quick Actions and Refactorings" содержит команду "Rename file to [class].cs".

Кажется, что это не работает, когда скопированный файл находится в той же папке и имя класса совпадает (что будет, если вы просто скопировали файл). Я думаю, что причина может заключаться в том, что переименование не разграничивает класс во вновь скопированном файле и оригинал (см. Комментарий ниже по @xMichal).

Быстрое решение состоит в том, чтобы скопировать файл (я использую ctrl+drag) в соседнюю папку, переименовать, а затем переместить его обратно.

Другой вариант (который может быть специфичным для Resharper)- переименовать класс (и конструкторы) в скопированном файле, а затем использовать всплывающую подсказку для выборочного переименования файла в соответствии с ним.

ReSharper имеет опцию меню MoveTypesIntoMatchingFiles в контекстном меню Рефактора, и это, кажется, делает трюк. Просто если у вас есть несколько классов в одном файле, они также будут перемещены в отдельные файлы, но в любом случае это должно быть хорошо в большинстве случаев.

Если вы 'refactor' что-то, имя будет изменено везде, где был использован этот текст или имя, поэтому вам не нужно будет менять имя каждый раз, когда оно было использовано. Однако вы не можете сделать это с объектами, выходящими за рамки проекта, например: имя файла.

Установите удивительный плагин visual studio под названием Reshaper. Он делает это и много других приятных вещей. Бесплатно в течение 30 дней, то его стоимость, но, безусловно, стоит того.

Похожие вопросы:

Можно ли удалить класс из Visual Studio 2010? Я просто удалил не тот файл, и теперь есть еще один с тем же именем, но пустой. Есть ли способ получить исходную страницу ??

Я просто хочу знать, можем ли мы скомпилировать один файл/класс в visual studio. Я часто меняю только один файл, но в конечном итоге компилирую весь project.THis может быть тривиальным случаем, но.

Я использую Visual Studio 2010 для компиляции моего проекта C++, и компоновщик блеванет на два моих файла с одинаковым именем, но они находятся в совершенно разных каталогах. Как я могу заставить.

Есть ли у кого-нибудь способ добавить несколько папок и (существующих) файлов в этих папках в проект Visual Studio за один шаг (или с помощью макроса)? Предположим, что все папки и файлы были.

(Я новичок в perforce и стараюсь не попадать в проблемы, у меня есть проблемы с другими системами управления исходным кодом) Когда я переименовываю класс I мне нужно Измените имя класса это само Get.

Я пишу небольшое приложение с Visual Studio Code и Python. В моем приложении есть эти файлы: Main.py MyCustomClass.py По сути, Main.py -это точка входа в приложение. Другой класс-это просто логика.

В visual studio, что означает число рядом с именем файла? Это точно такой же файл. Вот пример: Он начал делать это несколько недель назад, и я не могу найти никакой информации об этом. Есть ли.

Я пытаюсь переименовать несколько каталогов с именем первого файла внутри них. Я пытаюсь это сделать: Перечислите файлы внутри папки. Определите каталоги. Для каждого каталога откройте его, возьмите.

Переименование файла работает нормально - он предложит изменить код, чтобы он соответствовал:

enter image description here

Если вы переименуете класс, то - действительно, по умолчанию этого не происходит. Обратите внимание, что на самом деле нет необходимости в совпадении этих двух параметров. Но в конечном итоге переименование находится всего на расстоянии f2 .

Если вы что-то «реорганизуете», имя будет изменено везде, где использовался этот текст или имя, поэтому вам не нужно следить за изменением имени каждый раз, когда оно используется. Однако вы не можете сделать это с объектами за пределами проекта, например: имя файла.

Установите замечательный плагин для Visual Studio под названием Reshaper. Он делает это и множество других хороших вещей. Бесплатно в течение 30 дней, это стоит того, но оно того стоит.

В ReSharper есть пункт меню MoveTypesIntoMatchingFiles в контекстном меню Refactor, и, похоже, он помогает. Просто, если у вас есть более одного класса в одном файле, они также будут перемещены в отдельные файлы, но в любом случае это должно быть хорошо.

Кажется, что не работает, когда скопированный файл находится в той же папке и имя класса совпадает (что будет, если вы только что скопировали файл). Я думаю, причина может заключаться в том, что переименование не делает различий между классом во вновь скопированном файле и оригиналом (см. Комментарий @xMichal ниже).

Быстрое решение - скопировать файл (я использую ctrl + drag) в ближайшую папку, переименовать, а затем переместить его обратно.

Другой вариант (который может быть специфичным для Resharper) - переименовать класс (и конструкторы) в скопированном файле, а затем использовать всплывающую подсказку, чтобы выборочно переименовать файл для соответствия.

Начиная с Visual Studio 2015 Preview 5 контекстное меню «Быстрые действия и рефакторинг» содержит команду «Переименовать файл в [class] .cs».


Мы все избалованы IDE. Хочу больше баловства! Представляю бесплатное расширение Visual Studio Code по переименованию файлов и переменных multi-replace.

Существует множество расширений и встроенных возможностей для рефакторинга. Основная фишка — переименование (переменной, класса, метода, файла и т.д.). Все мы прекрасно с такими возможностями знакомы, они ежеденевно поднимают нам настроение!

Мы любим правила, придерживаемся style guide-ов. Мы называем файлы исходя из содержимого. В файле app-component.ts, по-моему, должен лежать класс AppComponent. И переименовывая класс AppComponent в RootComponent, следующим действием следует поменять и название файла на root-component.ts… А если это, например, Angular компонент, то попутно приходится менять название ещё трех файлов, CSS селекторы, названия экземпляров! Сталкивались с этим? Простейшая операция переименования часто требует от нас неимоверных усилий.

Видели такой код?


Согласны, что с течением времени наши классы могут эволюционировать? Речь не про OOP или SOLID (других животных в проекте не наблюдается), это прекрасный класс — но название не отражает действительности. Методы этого класса кричат, что это кошка! И на самом деле, мы должны дать классу шанс на хорошее имя. Но как же все переменные с экземплярами, сотни const animal = new Cat();? А если у нас уже есть целые модули с ключевым словом animal.


В общем, тема правильного именования всегда актуальна. Но не автоматизированной рутины ещё много.

Чтобы повеселиться, я написал небольшую cli на node.js для простейшей замены строк в файлах, но так же и изменяющую имена файлов (@justerest/multi-replace). И был очень удивлён юзабельностью этого костыля! Я больше не боюсь ошибиться в названии компонента или модуля, потому что одной командой могу переименовать целую коллекцию Angular компонентов.

Спустя время, я так же обнаружил, что эта тулза может служить отличной альтернативой schematics. Просто скопируй максимально похожий файл (компонент) и переименуй! Это вдохновило меня на написание расширения multi-replace для моего любимого редактора Visual Studio Code.

multi-replace работает на примитивном String.ptototype.replace() без какого-либо анализа кода или типов файлов. Реализация очень простая — минимум кода, максимум пользы. Есть возможности переименования файлов и текста внутри папки, вместе с папкой, копирования изменённых файлов в новую папку.

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

Читайте также: