RefactorisationRefactoring

La refactorisation du code consiste à réorganiser, restructurer et clarifier le code existant tout en garantissant que le comportement global du code ne change pas.Refactoring code is a way to rearrange, restructure, and clarify existing code while ensuring that the overall behavior of the code doesn't change.

Elle génère une base de code plus saine, rendant le code plus utilisable, lisible et gérable pour vous ou pour tout autre développeur ou utilisateur susceptible de faire référence au code.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.

L’intégration de Visual Studio pour Mac à Roslyn, la plateforme de compilateurs .NET open source de Microsoft, permet une refactorisation plus importante.Visual Studio for Mac's integration with Roslyn, Microsoft's open-source .NET compiler platform, allows for more refactoring operations.

RenommageRenaming

La commande de refactorisation Renommer peut être utilisée sur n’importe quel identificateur du code (par exemple un nom de classe, un nom de propriété, etc.) pour rechercher toutes les occurrences de cet identificateur et les changer.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. Pour renommer un symbole, cliquez avec le bouton droit sur celui-ci et choisissez Refactoriser > Renommer, ou la combinaison de touches Cmd+R :To rename a symbol, right-click on it and choose Refactor > Rename, or the Cmd + R key binding:

Élément de menu Renommer

Ceci met en évidence le symbole et toutes les références à celui-ci.This highlights the symbol and any references to it. Quand vous commencez à taper un nouveau nom, il change automatiquement toutes les références dans votre code. Vous pouvez indiquer que le renommage a été effectué en appuyant sur Entrée :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:

Renommage et identificateur

Actions contextuellesContext actions

Les actions contextuelles vous permettent d’inspecter le code C# et de voir toutes les options de refactorisation possibles.Context actions allow you to inspect any C# code, and see all possible refactoring options.

Les éléments contextuels Résoudre et Refactoriser sont combinés en un seul élément Correction rapide... qui vous propose toutes les actions contextuelles disponibles :The Resolve and Refactor context items are combined into a single Quick Fix... item that will provide you with all the available Context actions:

Afficher les éléments contextuels

En passant le pointeur de la souris sur les actions contextuelles, vous obtenez un aperçu de ce qui est ajouté ou supprimé dans votre code.Hovering over any of the context actions provides you with a preview of what will be added or removed from your code.

Vous pouvez aussi appuyer sur Option+Entrée n’importe où dans votre code :Alternatively, you can press Option + Enter anywhere in your code:

Option Entrer les éléments contextuels

Pour activer ces options, vous devez sélectionner Activer l’analyse du code source des fichiers ouverts dans les options de Visual Studio pour Mac > Préférences > Éditeur de texte > Analyse du code source :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:

Activer l’analyse du code source

Il existe plus de 100 actions possibles qui peuvent être suggérées, qui sont activées ou désactivées en accédant à Visual Studio pour Mac > Préférences > Analyse du code source > C# > Actions de code, et en cochant ou en décochant la case en regard de l’action :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:

Actions de l’analyse du code source C#

Actions contextuelles courantesCommon context actions

Certaines des actions contextuelles les plus couramment utilisées sont expliquées ci-dessous.Some of the mostly commonly used context actions are explained below.

Extraire la méthodeExtract method

L’opération de refactorisation Extraire la méthode vous permet de créer une nouvelle méthode en extrayant une sélection de code dans un membre existant.The extract method refactoring operation allows you to create a new method by extracting a selection of code in an existing member. Cette action effectue deux opérations :This action will do two things:

  • Elle crée une méthode qui contient le code sélectionné.Creates a new method containing the selected code
  • Elle appelle la nouvelle méthode là où se trouvait le code sélectionné.Calls the new method in the place where the selected code was.
ExempleExample
  1. Ajoutez le code suivant :Add the following code:
    class MainClass
    {

        double CalculatePyramidVolume(double baseArea, double height)
        {

            double volume = (baseArea * height) / 3;

            return volume;
        }
    }
  1. Mettez en surbrillance la ligne double volume = (baseArea * height) / 3;, cliquez avec le bouton droit sur celle-ci et sélectionnez Refactoriser > Extraire la méthode.Highlight the line double volume = (baseArea * height) / 3;, right click on it, and select Refactor > Extract Method.

  2. Utilisez les touches de direction pour sélectionner l’emplacement de la nouvelle méthode dans votre code.Use the arrow keys to select where the new method should be placed in your code.

Encapsuler le champEncapsulate field

L’opération Encapsuler le champ vous permet de créer une propriété à partir d’un champ existant et met à jour votre code pour référencer la propriété nouvellement créée.The Encapsulate Field operation allows you to create a property from an existing field, and updates your code to reference the newly created property. En créant une propriété qui encapsule votre champ, vous empêchez un accès direct à votre champ public, ce qui signifie que qu’autres objets ne peuvent pas le modifier.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.

Cette action effectue les opérations suivantes :This action will do the following:

  • Elle change le modificateur d’accès en privé.Changes the access modifier to private.
  • Elle génère une méthode getter et une méthode setter pour le champ (sauf si le champ est en lecture seule, auquel cas elle crée seulement une méthode getter).Generates a getter and setter for the field (unless the field is read-only, in which case it will only create a getter).

Analyse du code sourceSource analysis

L’analyse du code source analyse votre code à la volée. Elle souligne les erreurs potentielles et les violations de style, et fournit des corrections automatiques sous forme d’actions contextuelles.Source analysis analyzes your code on the fly by underlining potential errors and style violations, and providing auto fixes as context actions.

Vous pouvez voir tous les résultats de l’analyse du code source pour n’importe quel fichier et à tout moment, en consultant la barre de défilement sur le côté droit de l’éditeur de texte :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:

Barre latérale Analyse du code source

Si vous cliquez sur le cercle en haut, vous pouvez parcourir les différentes suggestions, les problèmes avec la gravité la plus élevée figurant en premier.If you click on the circle at the top, you can iterate through each suggestion, with the highest severity issues showing first. Passez le pointeur sur un résultat ou une ligne individuelle pour afficher le problème. Vous pouvez alors le corriger via des actions contextuelles :Hovering over an individual result or line displays the issue, which can be fixed through context actions:

Élément d’analyse du code source

Voir aussiSee also