ReSharper incluye más de 1200 arreglos rápidos que le ayudan a reparar instantáneamente la mayoría de los problemas de código detectados en C#, VB.NET, XAML, ASP.NET y otros lenguajes compatibles. Para aplicar un arreglo rápido, simplemente presione Alt+Introducir sobre un problema de código resaltado y elija la mejor forma de corregir un problema o mejorar el código.
Los arreglos rápidos usualmente están representados con una bombilla de luz roja (errores) o amarilla (advertencias, sugerencias y consejos) que aparece a la izquierda de la línea de código resaltada cuando coloca el signo de intercalación sobre el resaltado. Para ver la lista de los arreglos rápidos disponibles para un error determinado, haga clic en la bombilla de luz o presione Alt+Intro. Luego, simplemente seleccione un arreglo rápido adecuado de la lista y el problema se resolverá de la mejor forma posible.
Algunos arreglos rápidos (p. ej. Remove unused directives, Make field read-only, Remove redundant cast, etc.) pueden encontrar y arreglar problemas automáticamente en un ámbito más grande: en el archivo actual, en el proyecto actual o en toda la solución.
Puede reconocer estos arreglos por la pequeña flecha que tienen al lado. Haga clic en esta flecha o presione la tecla direccional derecha para elegir dónde aplicar el arreglo.
Para errores causados por símbolos no resueltos, ReSharper ofrece una variedad de distintos arreglos rápidos, por ejemplo:
Los arreglos rápidos que crean nuevos símbolos en su código a menudo son interactivos, como en este ejemplo en el que ReSharper le ayuda a corregir múltiples enumeraciones de IEnumerable
forzando la enumeración por adelantado a una variable List<>
.
Cuando ReSharper resalta campos de entrada obligatorios con un cuadro rojo, puede aceptar el valor sugerido o modificarlo y presionar Tab o Intro para moverse a la siguiente posición de entrada, o presionar Mayús+Tab para moverse la posición de entrada anterior. Cuando termine con el último campo de entrada, su signo de intercalación volverá al modo normal.
ReSharper también ofrece acciones contextuales que se muestran en la lista desplegable junto con los arreglos rápidos.
La diferencia entre estas dos es simple: los arreglos rápidos solo aparecen para problemas de código resaltados y apuntan a corregirlos, mientras que las acciones contextuales representan mini-refactorizaciones que siempre están disponibles en el menú desplegable Alt+Intro.
ReSharper proporciona Structural Search and Replace (Búsqueda y reemplazo estructural) para buscar código que coincide con cierto patrón y, opcionalmente, sustituirlo con código que coincida con otro patrón. Algo aún más increíble es que ReSharper puede monitorizar continuamente su solución en busca de sus patrones de búsqueda, resaltar el código coincidente y ofrecer arreglos rápidos para sustituir el código de acuerdo con sus patrones de reemplazo.
Durante años, usar String.Format
y otros métodos que admiten el formateo compuesto era la única forma de integrar valores de variables C# en literales de cadena. A partir de C# 6.0, puede hacer esto de una forma mucho más legible gracias a la interpolación de cadenas. Con el arreglo rápido de ReSharper, es posible sustituir el formateo compuesto con la interpolación de cadena con solo presionar unas pocas teclas.
Cuando ReSharper detecta una llamada a método en un objeto que podría ser null, llevando posiblemente a una System.NullReferenceException
en tiempo de ejecución, sugiere dos arreglos rápidos. Un arreglo tradicional añadirá una rutina de verificación de null adelante de la llamada. Sin embargo, una forma más clara y simple de lidiar con esta llamada es usar el operador condicional de null .?
, que se introdujo en C #6.0 para resolver este escenario.
Si le gusta la sintaxis LINQ en Ch#, ReSharper le ayudará a revisar sus bases de código existentes para detectar bucles que se podrían convertir en expresiones LINQ y luego podrá usar un arreglo rápido para llevar a cabo la conversión de forma rápida y segura.
Si un método de C# admite un número variable de argumentos con la palabra clave params
, el compilador generará un vector para los argumentos para que no necesite crear un vector para sus argumentos en la llamada al método.
Lo que resulta más interesante es que ReSharper sugiere un arreglo rápido que elimina todo el código redundante en el ámbito deseado, incluidos calificadores, argumentos o castings redundantes, revisiones de condiciones, asignaciones no usadas, código no alcanzable y más.
Si el único propósito de una función de anulación es invocar a la llamada "implementation" con valores predeterminados para algunos argumentos, ReSharper le ayudará a eliminar esta sobrecarga y usar parámetros opcionales en la función de "implementación".
Por diseño, foreach
permite un casting oculto a un tipo derivado. Por un lado esto simplifica el uso, pero por otro esto puede conllevar a System.InvalidCastException
en tiempo de ejecución. Un arreglo rápido que ReSharper sugerirá aquí le ayuda a hacer que el casting sea explícito. Aún no es seguro, pero al menos ya no está oculto.
Muchos arreglos rápidos funcionan para varios lenguajes. Aquí hay un ejemplo de un arreglo rápido que está disponible tanto en C# y en VB.NET: para dejar claro cómo se comparan exactamente dos cadenas, ReSharper sugiere sustituir la comparación mediante el operador de igualdad con String.Equals()
que manejará el uso de mayúsculas y minúsculas y se asegurará de que la comparación tenga en cuenta la cultura.
Los tipos de uniones TypeScript a veces pueden resultar complicadas. Por ejemplo, usar un miembro que no es común a todos los tipos de un valor de tipo de unión conllevará a un error de compilador. En este caso, ReSharper sugiere una variedad de arreglos rápidos que añaden distintos type guards para desambiguar dicho miembro.
En los archivos JSON, ReSharper usa su conocimiento sobre todas las propiedades requeridas provenientes de esquemas JSON vinculadas para sugerir arreglos rápidos para las propiedades obligatorias faltantes.
CSS nivel 3 e inferior no permiten un canal alfa en la notación de colores hexadecimal. Por lo tanto, ReSharper le sugiere ya sea sustituir el color hexadecimal con un color RGBA o HSLA, o simplemente eliminar el valor de canal alfa.