Compartilhar via


Renomear a refatoração (C#)

Renomear é um recurso de refatoração no Visual Studio integrated development environment (IDE) que fornece uma maneira fácil para renomear identificadores para símbolos de código como variáveis locais, campos, métodos, namespaces, propriedades, e tipos.Renomear pode ser usado para alterar os nomes nos comentários e cadeias de caracteres e modificar as declarações e chamadas de um identificador.

ObservaçãoObservação

A o usar o controle do código-fonte para o Visual Studio, obter a versão mais recente de fontes antes de tentar executar uma renomeação de refatoração.

Renomear refatoração está disponível dos seguintes recursos do Visual Studio:

Recurso

Comportamento de Refatoração no IDE

Editor de códigos

Em o editor de códigos, renomear refatoração está disponível quando você posicionar o cursor em determinados tipos de símbolos de código.Quando o cursor está em essa posição, você pode invocar o comando de Renomear digitando o atalho de teclado (CTRL + R, CTRL + R), ou selecionando o comando de Renomear de uma marca inteligente, no menu de atalho, ou do menu de Refatorar .

Modo de Exibição de Classe

Quando você seleciona um identificador no modo da classe, renomear refatoração está disponível no menu de atalho e do menu de Refatorar .

Pesquisador de Objetos

Quando você seleciona um identificador no pesquisador de objetos, renomear refatoração só está disponível no menu de Refatorar .

Grade de propriedade do windows forms designer

Em Grade de propriedade do windows forms designer, alterar o nome de um controle iniciará uma operação de renomeação para esse controle.a caixa de diálogo de Renomear não aparecerá.

Explorer solução

Em Gerenciador de Soluções, um comando de Renomear está disponível no menu de atalho.Se o arquivo de origem selecionado contém uma classe cujo nome da classe é o mesmo que o nome de arquivo, você pode usar este comando renomear simultaneamente o arquivo de origem e para executar uma renomeação de refatoração.

Por exemplo, se você criar um aplicativo baseado no Windows padrão e renomear em Form1.cs a TestForm.cs, o nome do arquivo de origem Form1.cs passará a TestForm.cs e a classe Form1 e todas as referências a aquela classe. a TestForm serão renomeados

ObservaçãoObservação
O comando de Desfazer (CTRL+Z) desfarão somente renomiar refatoração no código e não alterarão o nome do arquivo de volta ao nome original.

Se o arquivo de origem selecionado não contém uma classe cujo nome é o mesmo que o nome do arquivo, o comando de Renomear em Gerenciador de Soluções renomeará somente o arquivo de origem e não o executará refatoração renomeia.

Operações de renomeação

Quando você executa Renomear, o mecanismo de refatoração executa um específico da operação de renomeação para cada símbolo de código, como descrito na tabela a seguir.

Símbolo de código

Operação de renomeação

Campo

Altera a declaração e usos do campo para o novo nome.

Variável local

Altera a declaração e usos da variável para o novo nome.

Método

Altera o nome do método e todas as referências a esse método para o novo nome.

ObservaçãoObservação
Quando você renomear um método de extensão, a operação de renomeação se propaga para todas as instâncias de método que está no escopo, independentemente se o método de extensão está sendo usado como um método estático ou um método de instância.Para mais informações, consulte Métodos de extensão (guia de programação do C#).

Namespace

Altera o nome do namespace para o novo nome na declaração, em todas as instruções de using , e nomes totalmente qualificados.

ObservaçãoObservação
Para renomear um namespace, Visual Studio também atualiza a propriedade de Namespace Padrão na página de Aplicativo de Designer de projeto.Esta propriedade não pode ser redefinido selecionando Desfazer do menu de Editar .Para limpar o valor de propriedade de Namespace Padrão , você deve alterar a propriedade em Designer de projeto.Para obter mais informações, consulte página de aplicativo.

Propriedade

Altera a declaração e usos da propriedade para o novo nome.

Tipo

Altere todas as declarações e todos os usos de tipo para o novo nome, incluindo construtores e destructors.Para tipos parciais, a operação de renomeação para todas as partes propagará.

Para renomear um identificador

  1. Crie um aplicativo de console chamado RenameIdentifier, e em seguida Program substitua com o seguinte exemplo de código.

    class ProtoClassA
    {
        // Invoke on 'MethodB'.
        public void MethodB(int i, bool b) { }
    }
    
    class ProtoClassC
    {
        void D()
        {
            ProtoClassA MyClassA = new ProtoClassA();
    
            // Invoke on 'MethodB'.
            MyClassA.MethodB(0, false);
        }
    }
    
  2. Coloque o cursor em MethodB, na declaração de método ou na chamada de método.

  3. Em o menu de Refatorar , selecione Renomear.A caixa de diálogo Rename aparece.

    Você também pode clicar com o botão direito do mouse no cursor, aponte para Refatorar no menu de contexto, e clique em Renomear para exibir a caixa de diálogo de Renomear .

  4. Em o campo de Novo nome , digite MethodC.

  5. Selecione a caixa de seleção de Pesquise nos comentários .

  6. Clique em OK.

  7. Em a caixa de diálogo de Visualizar Alterações , clique Aplicar.

Para renomear um identificador usando marcas inteligentes

  1. Crie um aplicativo de console chamado RenameIdentifier, e em seguida Program substitua com o seguinte exemplo de código.

    class ProtoClassA
    {
        // Invoke on 'MethodB'.
        public void MethodB(int i, bool b) { }
    }
    
    class ProtoClassC
    {
        void D()
        {
            ProtoClassA MyClassA = new ProtoClassA();
    
            // Invoke on 'MethodB'.
            MyClassA.MethodB(0, false);
        }
    }
    
  2. Em a declaração para MethodB, digite ou retroceda sobre o identificador do método.Um aviso de marca inteligente será exibido abaixo de esse identificador.

    ObservaçãoObservação

    Você só pode chamar refatoração renomeia usando marcas inteligentes na declaração de um identificador.

  3. Digite o atalho de teclado SHIFT+ALT+F10 e em seguida, pressione SETA PARA BAIXO PARA exibir o menu de marca inteligente.

    -  ou  -

    Mova o ponteiro do mouse sobre a mensagem de marca inteligente para exibir a marca inteligente.Então mova o ponteiro do mouse sobre a marca inteligente e em SETA PARA BAIXO para exibir o menu de marca inteligente.

  4. Selecione o item de menu renomear '<identifer1>“a”<identifier2>' para chamar renomiar refatoração sem uma visualização das alterações em seu código.Todas as referências a <identifer1> serão atualizadas automaticamente a <identifier2>.

    -  ou  -

    Selecione o item de menu renomear com visualização para chamar renomiar refatoração com uma visualização das alterações em seu código.a caixa de diálogo de Visualizar Alterações aparecerá.

Comentários

Renomeando membros substituídos ou implementados

Quando você Renomear um membro que implementa/substituição ou seja implementado/substituído por membros em outros tipos, Visual Studio exibe uma caixa de diálogo que indica a operação de renomeação irá fazer atualizações em cascata.Se você clicar em Continuar, o mecanismo localiza refatoração recursivamente e renomeie todos os membros nos tipos base e derivado que possuem relações implements/substituições com o membro sendo renomeado.

O exemplo de código contém membros com relações implements/alternativas.

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()
    { }
}

Em o exemplo anterior, renomeando C.Method() também renomeia Ibase.Method() porque C.Method() implementa Ibase.Method().Em seguida, o mecanismo de refactor recursivamente consulta que Ibase.Method() é implementado por Derived.Method() e renomear Derived.Method().O mecanismo de refactor não renomeia Base.Method(), porque Derived.Method() não substitui Base.Method().O mecanismo para refatoração aqui a menos que você tenha renomear sobrecargas fazer o check-in da caixa de diálogo de Renomear .

Se renomear sobrecargas é verificado, o mecanismo de refactor renomeia Derived.Method(int i) como sobrecarrega Derived.Method(), Base.Method(int i) porque é substituído por Derived.Method(int i), e Base.Method() porque é uma sobrecarga de Base.Method(int i).

ObservaçãoObservação

Quando você renomeia um membro que é definido em um assembly referenciado, uma caixa de diálogo explica que causará renomear erros de compilação.

Renomeando propriedades de tipos anônimos

Quando você renomear uma propriedade em tipos anônimos, a operação de renomeação propagará a propriedades em outros tipos anônimos que têm as mesmas propriedades.Os exemplos a seguir ilustram esse comportamento.

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

Em o código acima, renomear ID alterar ID em ambas as instruções porque elas têm o mesmo tipo anônimo subjacente.

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};

Em o código acima, renomeando ID renomeará apenas uma instância de ID porque companyIDs e orderIDs não têm as mesmas propriedades.

Consulte também

Referência

Tipos anônimos (guia de programação do C#)

Conceitos

Refatoração (C#)