RefatoraçãoRefactoring

Refatorar o código é uma maneira para reorganizar, reestruturar e esclarecer o código existente e garantir que o comportamento geral do código não se altere.Refactoring code is a way to rearrange, restructure, and clarify existing code while ensuring that the overall behavior of the code doesn't change.

Refatorar produz uma base de código mais íntegra, tornando-a mais utilizável, saudável, legível e fácil de manter tanto para você quanto para qualquer outro desenvolvedor ou usuário que poderia consultar o código.Refactoring produces a healthier code base, making it more useable, readable, and maintainable for you or any other developer or user that might refer to the code.

A integração do Visual Studio para Mac com o Roslyn, a plataforma de compilador .NET do software livre da Microsoft, permite realizar mais operações de refatoração.Visual Studio for Mac's integration with Roslyn, Microsoft's open-source .NET compiler platform, allows for more refactoring operations.

RenomearRenaming

O comando de refatoração Renomear pode ser usado em qualquer identificador de código (por exemplo, um nome de classe, nome de propriedade, etc.) para localizar todas as ocorrências do identificador em questão e alterá-las.The Rename refactoring command can be used on any code identifier (for example, a class name, property name etc.) to find all occurrences of that identifier and change them. Para renomear um símbolo, clique com botão direito do mouse nele e escolha Refatorar > Renomear ou a associação de teclas Cmd + R:To rename a symbol, right-click on it and choose Refactor > Rename, or the Cmd + R key binding:

Renomear um item de menu

Isso destaca o símbolo e todas as referências a ele.This highlights the symbol and any references to it. Quando você começar a digitar um novo nome, ele será alterado automaticamente em todas as referências no código e você poderá sinalizar a conclusão da renomeação pressionando Enter:When you start typing a new name it automatically changes all references in your code, and you can signal your completion of the rename by pressing Enter:

Renomear e identificador

Ações de contextoContext actions

Ações de contexto permitem que você inspecione qualquer código C# e veja todas as possíveis opções de refatoração.Context actions allow you to inspect any C# code, and see all possible refactoring options.

Os itens de contexto Resolver e Refatorar são combinados em um único item Correção rápida... que fornece todas as ações de contexto disponíveis:The Resolve and Refactor context items are combined into a single Quick Fix... item that will provide you with all the available Context actions:

Exibir itens de contexto

Focalizar uma das ações de contexto fornecerá uma visualização do que será adicionado ou removido do código.Hovering over any of the context actions provides you with a preview of what will be added or removed from your code.

Outra opção é pressionar Option + Enter em qualquer lugar no seu código:Alternatively, you can press Option + Enter anywhere in your code:

Itens de contexto Option Enter

Para habilitar essas opções, você deverá selecionar Habilitar a análise de código-fonte de arquivos abertos nas opções de Visual Studio para Mac > Preferências > Editor de Texto > Análise de Código-Fonte:To enable these options, you must select Enable source analysis of open files in the options Visual Studio for Mac > Preferences > Text Editor > Source Analysis:

Habilitar a análise de código-fonte

Há mais de 100 ações possíveis que podem ser sugeridas, as quais são habilitadas ou desabilitadas navegando para Visual Studio para Mac > Preferências > Análise de código-fonte > C# > Ações de Código e marcando ou desmarcando a caixa ao lado da ação:There are over 100 possible actions that can be suggested, which are enabled or disabled by browsing to Visual Studio for Mac > Preferences > Source Analysis > C# > Code Actions and selecting or unselecting the box next to the action:

Ações da Análise de código-fonte C#

Ações de contexto comunsCommon context actions

Algumas das ações de contexto mais usadas são explicadas abaixo.Some of the mostly commonly used context actions are explained below.

Extrair métodoExtract method

A operação de refatoração Extrair método permite que você crie um novo método extraindo uma seleção do código em um membro existente.The extract method refactoring operation allows you to create a new method by extracting a selection of code in an existing member. Esta ação faz duas coisas:This action will do two things:

  • Cria um novo método que contém o código selecionadoCreates a new method containing the selected code
  • Chama o método de novo no local em que o código selecionado estava.Calls the new method in the place where the selected code was.
ExemploExample
  1. Adicione o seguinte código:Add the following code:
    class MainClass
    {

        double CalculatePyramidVolume(double baseArea, double height)
        {

            double volume = (baseArea * height) / 3;

            return volume;
        }
    }
  1. Realce a linha double volume = (baseArea * height) / 3;, clique com o botão direito do mouse nela e selecione Refatorar > Extrair método.Highlight the line double volume = (baseArea * height) / 3;, right click on it, and select Refactor > Extract Method.

  2. Use as teclas de direção para selecionar onde o novo método deve ser colocado no seu código.Use the arrow keys to select where the new method should be placed in your code.

Encapsular campoEncapsulate field

A operação de Encapsular campo permite que você crie uma propriedade de um campo existente e atualiza seu código para fazer referência à propriedade recém-criada.The Encapsulate Field operation allows you to create a property from an existing field, and updates your code to reference the newly created property. Ao criar uma propriedade que encapsula o campo, você está cancelando a permissão de acesso direto ao seu campo público, o que significa que outros objetos não poderão modificá-lo.By creating a property that encapsulates your field, you are disallowing direct access to your public field, meaning that other objects can't modify it.

Essa ação faz o seguinte:This action will do the following:

  • Altera o modificador de acesso para privado.Changes the access modifier to private.
  • Gera um getter e um setter para o campo (a menos que o campo seja somente leitura, pois nesse caso ele criará somente um getter).Generates a getter and setter for the field (unless the field is read-only, in which case it will only create a getter).

Análise de código-fonteSource analysis

A análise de código-fonte examinará o código em tempo real sublinhando possíveis erros e violações de estilo e fornecendo correções automáticas como ações de contexto.Source analysis analyzes your code on the fly by underlining potential errors and style violations, and providing auto fixes as context actions.

Você pode exibir todos os resultados da análise de código-fonte para qualquer arquivo a qualquer momento exibindo a barra de rolagem à direita do editor de texto:You can view all results of the source analysis for any file, at any time, by viewing the scroll bar on the right side of the text editor:

Barra lateral da Análise de código-fonte

Se você clicar no círculo na parte superior, poderá percorrer cada sugestão, com os problemas de gravidade mais alto sendo mostrados primeiro.If you click on the circle at the top, you can iterate through each suggestion, with the highest severity issues showing first. Focalizar um resultado ou linha individual exibirá o problema que poderá ser corrigido por meio de ações de contexto:Hovering over an individual result or line displays the issue, which can be fixed through context actions:

Item da análise de código-fonte

Consulte tambémSee also