Refatoração (C#)
Refatoração é o processo de aperfeiçoar seu código depois que ele foi escrito, alterando a estrutura interna do código sem alterar o comportamento externo do código.
C# Visual fornece os seguintes comandos de refatoração sobre o refatoração menu:
Refatoração de multiprojetos
Visual Studio oferece suporte à refatoração multiprojeto para projetos que estão na mesma solução. Todas as operações de refatoração que corrigir referências em arquivos corrigir essas referências em todos os projetos do mesmo idioma. Isso funciona para todas as referências do projeto a projeto. Por exemplo, se você tiver um aplicativo de console que faz referência a uma biblioteca de classes, quando você renomeia um tipo de biblioteca de classe (usando o Rename operação de refatoração), as referências para o tipo de biblioteca de classe no aplicativo de console também são atualizadas.
Visualização de alterações
Muitas operações de refatoração fornecem uma oportunidade para que você revise todas as alterações de referência que uma operação de refatoração deve executar no seu código, antes de confirmar essas alterações. Para essas operações, de refatoração um Visualizar alterações de referência opção aparecerá na caixa de diálogo de refatoração. Após selecionar a opção e aceitando a operação de refatoração, o Caixa de diálogo alterações de visualização será exibido. Observe que o Visualizar alterações caixa de diálogo possui dois modos de exibição. O modo de exibição inferior exibirá seu código com todas as atualizações de referência devido à operação de refatoração. Pressionando Cancelar sobre o Visualizar alterações caixa de diálogo irá parar a operação de refatoração e nenhuma alteração será feita ao seu código.
Avisos de refatoração
Se o compilador não tem um entendimento completo do seu programa, e é possível que o mecanismo de refatoração não pode atualizar as referências apropriadas, a caixa de diálogo de aviso é exibida. Esta caixa de diálogo de aviso também fornece uma oportunidade para que você visualize seu código no Visualizar alterações caixa de diálogo antes de você confirmar alterações.
Observação |
---|
Se um método contém um erro de sintaxe (que indica que o IDE com um sublinhado ondulado vermelho), o mecanismo de refatoração não atualizará todas as referências a um elemento dentro desse método. O exemplo a seguir ilustra esse comportamento. |
Por padrão, se você executar uma operação de refatoração sem referência a visualização é alterado é detectado um erro de compilação em seu programa e o ambiente de desenvolvimento exibe essa caixa de diálogo de aviso.
Se você executar uma operação de refatoração tem Visualizar alterações de referência habilitado é detectado um erro de compilação em seu programa, e o ambiente de desenvolvimento exibirá a seguinte mensagem de aviso na parte inferior a Visualizar alterações caixa de diálogo, em vez de exibir o Aviso de refatoração caixa de diálogo:
Seu projeto ou uma de suas dependências não compila no momento. As referências não podem ser atualizadas.
Este aviso de refatoração só está disponível para refatorar operações que fornecem a Visualizar alterações de referência opção.
Refatoração tolerante ao erro e os resultados da verificação
Refatoração é o erro tolerante a falhas. Em outras palavras, você pode executar uma refatoração em um projeto que não é possível construir. No entanto, nesses casos o processo de refatoração pode não atualizar referências ambíguas corretamente.
O Resultados da verificação de caixa de diálogo pode notificá-lo se o mecanismo de refatoração detecta erros de compilação ou descobre que uma operação de refatoração inadvertidamente causa uma referência de código para ligar a algo diferente da que foi originalmente vinculado (problema de religação).
Para ativar os resultados da verificação apresentam, na Ferramentas menu, clique em Opções. No Opções caixa de diálogo caixa, expanda O Editor de textoe, em seguida, expanda C#. Clique em Advanced e selecione o resultados da verificação de refatoração caixa de seleção.
O Resultados da verificação de caixa de diálogo distingue a diferença entre dois tipos de problemas de religação.
Referências cuja definição não será mais o símbolo renomeado
Esse tipo de problema de religação ocorre quando uma referência não se refere a um símbolo renomeado. Por exemplo, considere o código a seguir:
class Example
{
private int a;
public Example(int b)
{
a = b;
}
}
Se você usar a refatoração para renomear a para b, a caixa de diálogo aparece. A referência à variável renomeada a vincula-se agora para o parâmetro que é passado para o construtor em vez de ligação para o campo.
Referências cuja definição se tornará agora o símbolo renomeado
Esse tipo de problema de religação ocorre quando uma referência que anteriormente não se refere ao símbolo renomeado agora se referir o símbolo renomeado. Por exemplo, considere o código a seguir:
class Example
{
private static void Method(object a) { }
private static void OtherMethod(int a) { }
static void Main(string[] args)
{
Method(5);
}
}
Se você usar a refatoração para renomear OtherMethod para Method, a caixa de diálogo aparece. A referência na Main refere-se agora para o método sobrecarregado que aceita um int parâmetro em vez do método sobrecarregado que aceita um object parâmetro.
Consulte também
Tarefas
Como: Restaurar trechos de refatoração do C#