Поделиться через


Переименовать

Обновлен: Ноябрь 2007

Функция оптимизации Переименование интегрированной среды разработки Visual Studio является простым способом переименования идентификаторов таких символов кода, как поля, локальные переменные, методы, пространства имен, свойства и типы. Функция Переименование может использоваться для изменения имен в комментариях и строках, а также для изменения объявлений и вызовов идентификаторов.

6kxxabwd.alert_note(ru-ru,VS.90).gifПримечание.

При использовании системы управления версиями для среды разработки Visual Studio перед попыткой выполнить операцию оптимизации "переименование" следует взять последнюю версию исходного кода.

Функция оптимизации "Переименование" доступна из следующих модулей среды разработки Visual Studio:

Модуль

Поведение оптимизации в интегрированной среде разработки

Редактор кода

В редакторе кода операция оптимизации "переименование" доступна при размещении курсора на символах кода определенного типа. Расположив курсор в таком месте, можно вызвать команду Переименование, нажав сочетание клавиш (CTRL + R, R) или выбрав команду Переименование в меню смарт-тегов, контекстном меню или меню Оптимизация. При вызове команды Переименование открывается диалоговое окно Переименование. Дополнительные сведения см. в разделах Диалоговое окно "Переименование" и Практическое руководство. Переименование идентификаторов.

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

При выборе идентификатора в представлении классов операция оптимизации "переименование" доступна из контекстного меню и из меню Оптимизация.

Обозреватель объектов

При выборе идентификатора в обозревателе объектов операция оптимизации "переименование" доступна только из меню Оптимизация.

Сетка свойств конструктора Windows Forms

В сетке свойств конструктора Windows Forms изменение имени элемента управления приводит к запуску операции переименования для этого элемента управления. Диалоговое окно Переименование при этом не открывается.

Обозреватель решений

В Обозревателе решений команда Переименование доступна в контекстном меню. Если выбранный файл с исходным кодом содержит класс, имя которого совпадает с именем файла, то эту команду можно использовать для одновременного переименования файла с исходным кодом и выполнения операции оптимизации "переименование".

Например, при создании приложения Windows по умолчанию и переименовании файла Form1.cs в TestForm.cs имя файла с исходным кодом Form1.cs будет изменено на TestForm.cs, а класс Form1 и все ссылки на этот класс будут изменены на TestForm.

6kxxabwd.alert_note(ru-ru,VS.90).gifПримечание.
Команда Отменить (CTRL+Z) выполняет отмену только операции оптимизации "переименование" в коде, а имя файла на исходное не меняет.

Если выбранный файл с исходным кодом не содержит класса, имя которого совпадает с именем файла, то команда Переименование в Обозревателе решений переименовывает только файл с исходным кодом, а операция оптимизации "переименование" не выполняется.

Операции переименования

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

Символ кода

Операция переименования

Поле

Изменяет объявление и случаи использования имени поля на новое имя.

Локальная переменная

Изменяет объявление и случаи использования имени переменной на новое имя.

Метод

Изменяет имя метода и все ссылки на этот метод на новое имя.

6kxxabwd.alert_note(ru-ru,VS.90).gifПримечание.
При переименовании метода расширения операция переименования распространяется на все экземпляры этого метода, находящиеся в области действия, независимо от того, используется этот метод расширения как статический метод или метод экземпляра. Дополнительные сведения см. в разделе Методы расширения (руководство по программированию в C#).

Пространство имен

Изменяет имя пространства имен на новое в его объявлении, во всех операторах using и во всех полных именах.

6kxxabwd.alert_note(ru-ru,VS.90).gifПримечание.
При переименовании пространства имен Visual Studio также обновляет свойство Пространство имен по умолчанию на странице ПриложениеКонструктора проектов. Это свойство невозможно сбросить, выбрав команду Отменить в меню Правка. Для сброса значения свойства Пространство имен по умолчанию необходимо изменить это свойство в Конструкторе проектов. Дополнительные сведения см. в разделе Страница "Приложение".

Свойство

Изменяет объявление и случаи использования свойства на новое имя.

Тип

Изменяет все объявления и все случаи использования типа на новое имя, включая конструкторы и деструкторы. Для разделяемых типов операция переименования распространяется на все части.

Заметки

Переименование реализованных или переопределенных членов

В случае применения операции Переименование к члену, который реализует/переопределяет или который реализуется/переопределяется членами других типов, Visual Studio открывает диалоговое окно, в котором говорится о том, что выполнение операции переименования приведет к каскадному обновлению. Если нажать кнопку Продолжить, то подсистема оптимизации рекурсивно выполнит поиск и переименование всех членов базового и производных типов, которые связаны отношением "реализация/переопределение" с переименовываемым членом.

В следующем примере кода есть члены, связанные отношением "реализация/переопределение".

interface IBase
{
    void Method();
}
public class Base
{
    public void Method()
    { }
    public virtual void Method(int i)
    { }
}
public class Derived : Base, IBase
{
    public new void Method()
    { }
    public override void Method(int i)
    { }
}
public class C : IBase
{
    public void Method()
    { }
}

В приведенном выше примере переименование метода C.Method() приводит к переименованию также метода Ibase.Method(), потому что метод C.Method() реализует метод Ibase.Method(). Затем подсистема оптимизации рекурсивно обнаруживает, что метод Ibase.Method() реализуется методом Derived.Method(), и переименовывает метод Derived.Method(). Подсистема оптимизации не переименовывает метод Base.Method(), потому что метод Derived.Method() не переопределяет метод Base.Method(). Подсистема оптимизации на этом останавливается, если флажок Переименовать перегруженные методы в диалоговом окне Переименование не установлен.

Если флажок Переименовать перегруженные методы установлен, то подсистема оптимизации переименовывает метод Derived.Method(int i), потому что он перегружает метод Derived.Method(), метод Base.Method(int i), потому что перегружен методом Derived.Method(int i), и метод Base.Method(), потому что он является перегрузкой метода Base.Method(int i).

6kxxabwd.alert_note(ru-ru,VS.90).gifПримечание.

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

Переименование свойств анонимных типов

При переименовании свойства анонимных типов операция переименования распространяется на свойства других анонимных типов, имеющих такие же свойства. Следующие примеры демонстрируют это поведение.

var a = new { ID = 1};
var b = new { ID = 2};

В приведенном выше коде переименование члена ID приведет к изменению имени ID в обоих операторах, потому что в их основе лежит один и тот же анонимный тип.

var companyIDs =
    from c in companylist
    select new { ID = c.ID, Name = c.Name};

var orderIDs =
    from o in orderlist
    select new { ID = o.ID, Item = o.Name};

В приведенном выше коде переименование члена ID сведется к переименованию только одного случая использования имени ID, потому что типы companyIDs и orderIDs не имеют одинаковых свойств.

См. также

Задачи

Практическое руководство. Переименование идентификаторов

Основные понятия

Оптимизация

Ссылки

Анонимные типы (Руководство по программированию в C#)

Другие ресурсы

Система управления версиями для Visual Studio