Visual studio переименовать класс
Файлы проекта могут быть доступны только для чтения, так как проект находится под контролем системы управления версиями и не извлекается. Это проект, на который указывает ссылка. Либо его файлы отмечены на диске как файлы только для чтения. При работе в проекте в одном из этих состояний, в зависимости от состояния проекта для сохранения результатов работы можно будет использовать разные способы. Это относится к рефакторингу кода, а также к коду, который изменяется неким другим способом, например, в ходе его непосредственного редактирования.
Стандартные задачи
Задача | Вспомогательное содержимое |
---|---|
Рефакторинг классов: для разбиения класса на разделяемые классы и создания абстрактного базового класса можно использовать операции рефакторинга. | - Практическое руководство. Разделение класса на разделяемые классы |
Работа с интерфейсами: в конструкторе классов можно реализовать интерфейс на схеме классов путем подключения его к классу, который предоставляет код для методов интерфейса. | - Практическое руководство. Реализация интерфейса |
Типы рефакторинга, члены типов и параметры: при помощи конструктора классов можно переименовывать типы, переопределять члены типов или перемещать их из одного типа в другой. Можно также создать типы, допускающие значение NULL. | - Переименование типов и членов типов - Перемещение членов типа из одного типа в другой - Практическое руководство. Создание типа, допускающего значение NULL |
Переименование типов и членов типов
В конструкторе классов можно переименовать тип или член типа на диаграмме классов или в окне Свойства. В окне Сведения о классе можно изменить имя члена, но не тип. Переименование типа или члена типа распространяется на все окна и места кода, где применялось старое имя.
Переименование в конструкторе классов
На диаграмме классов выберите тип или член и щелкните его имя.
Имя члена становится доступным для редактирования.
Введите новое имя для типа или члена типа.
Переименование в окне "Сведения о классах"
Для отображения окна Сведения о классах щелкните правой кнопкой мыши тип или член типа и нажмите кнопку Сведения о классах.
Появляется окно Сведения о классах.
В столбце Имя измените имя члена типа.
Для перемещения фокуса с ячейки нажмите клавишу ВВОД или щелкните вне области ячейки.
В окне Сведения о классе можно изменить имя члена, но не тип.
Переименование в окне "Свойства"
На диаграмме классов или в окне Сведения о классах щелкните правой кнопкой мыши тип или член и выберите Свойства.
Появляется окно Свойства со свойствами для типа или члена типа.
В свойстве Имя измените имя типа или члена типа.
Изменение имени распространится на все окна и места кода в текущем проекте, где применялось старое имя.
Перемещение членов типа из одного типа в другой
С помощью конструктора классов можно перемещать член типа из одного типа в другой. Оба типа должны отображаться на текущей диаграмме классов.
В типе, который отображается в области конструктора, щелкните правой кнопкой мыши член, который нужно переместить в другой тип, и выберите Вырезать.
Щелкните правой кнопкой мыши целевой тип и выберите Вставить.
Я использую Visual Studio 2010 для компиляции моего проекта C++, и компоновщик блеванет на два моих файла с одинаковым именем, но они находятся в совершенно разных каталогах. Как я могу заставить компоновщик распознать, что это разные файлы?
Есть ли у кого-нибудь способ добавить несколько папок и (существующих) файлов в этих папках в проект Visual Studio за один шаг (или с помощью макроса)? Предположим, что все папки и файлы были скопированы/вставлены в папку проекта, где они должны находиться относительно папки проекта, но на самом.
Переименование файла работает нормально - он предложит изменить код в соответствии с:
Если вы переименуете класс, то - действительно, по умолчанию этого не происходит. Обратите внимание, что на самом деле нет необходимости в том, чтобы эти два совпадали. Но в конечном счете, переименование-это всего лишь 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, что означает число рядом с именем файла? Это точно такой же файл. Вот пример: Он начал делать это несколько недель назад, и я не могу найти никакой информации об этом. Есть ли.
Я пытаюсь переименовать несколько каталогов с именем первого файла внутри них. Я пытаюсь это сделать: Перечислите файлы внутри папки. Определите каталоги. Для каждого каталога откройте его, возьмите.
Переименование файла работает нормально - он предложит изменить код, чтобы он соответствовал:
Если вы переименуете класс, то - действительно, по умолчанию этого не происходит. Обратите внимание, что на самом деле нет необходимости в совпадении этих двух параметров. Но в конечном итоге переименование находится всего на расстоянии 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() без какого-либо анализа кода или типов файлов. Реализация очень простая — минимум кода, максимум пользы. Есть возможности переименования файлов и текста внутри папки, вместе с папкой, копирования изменённых файлов в новую папку.
Хочу пропиариться и самоутвердиться услышать от хабровчан критику, предложения или альтернативные решения по переименованию.
Читайте также: