RefactorizaciónRefactoring

Mediante la refactorización del código, es posible reorganizar, reestructurar y aclarar el código existente sin que cambie el comportamiento general del código.Refactoring code is a way to rearrange, restructure, and clarify existing code while still ensuring that the overall behavior of the code does not change.

Genera un código base más correcto, lo que lo hace mucho más utilizable, legible y fácil de mantener para cualquier desarrollador o usuario que haga referencia al código.It produces a healthier code base, making it much more useable, readable, and maintainable for you or any other developer or user that might refer to the code.

La integración de Visual Studio para Mac con Roslyn, la plataforma de compilador de .NET de código abierto de Microsoft, permite más operaciones de refactorización y es totalmente compatible con la versión más reciente de C#.Visual Studio for Mac's integration with Roslyn, Microsoft's open source .NET compiler platform, allows for more refactoring operations, as well as fully supporting the latest C# version.

Cambiar nombreRenaming

El comando de refactorización Cambiar nombre puede usarse en cualquier identificador de código (por ejemplo, un nombre de clase, un nombre de propiedad, etc.) para buscar todas las apariciones de ese identificador y cambiarlas.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 cambiar el nombre de un símbolo, haga clic con el botón derecho en él y elija Refactorizar > Cambiar nombre, o el enlace de teclado Cmd + R:To rename a symbol, right-click on it and choose Refactor > Rename, or the Cmd + R key binding:

Elemento de menú Cambiar nombre

Esto resaltará el símbolo y todas las referencias a él.This will highlight the symbol and any references to it. Cuando empiece a escribir un nuevo nombre, se cambiarán automáticamente todas las referencias en el código. Para indicar la finalización del proceso de cambiar nombre, pulse ENTRAR:When you start typing a new name it will automatically change all references in your code, and you can signal your completion of the rename by pressing Enter:

Cambiar nombre e identificador

Acciones de contextoContext actions

Las acciones de contexto permiten inspeccionar código de C# y ver todas las opciones de refactorización posibles.Context actions allow you to inspect any C# code, and see all possible refactoring options.

Los elementos de contexto Resolver y Refactorizar se combinan en un solo elemento Corrección rápida… que proporciona todas las acciones de contexto 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:

Mostrar elementos de contexto

Al mantener el puntero sobre las acciones de contexto aparecerá una vista previa de lo que se agregará o se quitará del código.Hovering over any of the context actions will provide you with a preview of what will be added or removed from your code.

Como alternativa, puede pulsar Opción + Entrar en cualquier lugar del código:Alternatively, you can press Option + Enter anywhere in your code:

Elementos de contexto Opción + Entrar

Para habilitar estas opciones, debe seleccionar Habilitar análisis de código fuente de archivos abiertos en las opciones Visual Studio para Mac > Preferencias > Editor de texto > Análisis de código fuente: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 análisis de código fuente

Se pueden sugerir más de 100 acciones. Para habilitarlas o deshabilitarlas, vaya a Visual Studio para Mac > Preferencias > Análisis de código fuente > C# > Acciones de código y active o desactive la casilla situada junto a la acción: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:

Acciones de análisis de código fuente de C#

Acciones de contexto comunesCommon context actions

A continuación se explican algunas de las acciones de contexto más usadas.Some of the mostly commonly used context actions are explained below.

Extraer métodoExtract method

La operación de refactorización Extraer método permite crear un método al extraer una selección de código de un miembro existente.The extract method refactoring operation allows you to create a new method by extracting a selection of code in an existing member. Esta acción hace dos cosas:This action will do two things:

  • Crea un método que contiene el código seleccionado.Creates a new method containing the selected code
  • Llama al método nuevo en el lugar donde estaba el código seleccionado.Calls the new method in the place where the selected code was.
EjemploExample
  1. Agregue el código siguiente:Add the following code:
    class MainClass
    {

        double CalculatePyramidVolume(double baseArea, double height)
        {

            double volume = (baseArea * height) / 3;

            return volume;
        }
    }
  1. Resalte la línea double volume = (baseArea * height) / 3;, haga clic con el botón derecho en ella y seleccione Refactorizar > Extraer método.Highlight the line double volume = (baseArea * height) / 3;, right click on it, and select Refactor > Extract Method.

  2. Use las teclas de dirección para seleccionar dónde se debe colocar el nuevo método en el código.Use the arrow keys to select where the new method should be placed in your code.

Encapsular campoEncapsulate field

La operación Encapsular campo permite crear una propiedad a partir de un campo existente y actualiza el código para hacer referencia a la propiedad recién creada.The Encapsulate Field operation allows you to create a property from an existing field, and updates your code to reference the newly created property. Al crear una propiedad que encapsula el campo, no se permite el acceso directo al campo público, lo que significa que no lo pueden modificar otros objetos.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.

Esta acción hace lo siguiente:This action will do the following:

  • Cambia el modificador de acceso a privado.Changes the access modifier to private.
  • Genera un captador y un establecedor para el campo (a menos que el campo sea de solo lectura, en cuyo caso solo creará un captador).Generates a getter and setter for the field (unless the field is read-only, in which case it will only create a getter).

Análisis de código fuenteSource analysis

El análisis de código fuente analiza el código sobre la marcha. Para ello, subraya los posibles errores e infracciones de estilo y proporciona correcciones automáticas como acciones de contexto.Source analysis will analyze your code on the fly by underlining potential errors and style violations, and providing auto fixes as context actions.

Para ver todos los resultados del análisis de código fuente de un archivo, observe la barra de desplazamiento a la derecha del 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 del análisis de código fuente

Si hace clic en el círculo situado en la parte superior, puede iterar cada sugerencia. Los problemas con la gravedad más alta se muestran los primeros.If you click on the circle at the top, you can iterate through each suggestion, with the highest severity issues showing first. Si mantiene el puntero sobre una línea o un resultado se mostrarán los problemas, que podrá corregir mediante las acciones de contexto:Hovering over an individual result or line will display the issue, which can be fixed through context actions:

Elemento Análisis de código fuente