Correções rápidas

O ReSharper acompanha mais de 1200 correções rápidas que ajudam a reparar instantaneamente a maioria dos issues de código detectados em C#, VB.NET, XAML, ASP.NET e outras linguagens com suporte. Para aplicar uma correção rápida, basta pressionar Alt+Enter sobre um issue de código realçado e escolher a melhor maneira de corrigir um problema ou de melhorar o código.

Quick-fixes for code issues in ReSharper

Aplicação de correções rápidas

Correções rápidas são costumam ser representadas pela lâmpada vermelha (para erros) ou amarela (para avisos, sugestões e dicas) que aparece à esquerda de uma linha de código realçada quando você define o sinal de intercalação no realce. É possível ver a lista de correções rápidas disponíveis para um determinado erro clicando na lâmpada ou pressionando Alt+Enter. Em seguida, basta selecionar uma correção rápida apropriada da lista, e o problema será resolvido da maneira mais conveniente possível.

Applying ReSharper quick-fixes in wider scope (file, project, or solution)

Correção no escopo

Algumas correções rápidas (como Remove unused directives, Make field read-only, Remove redundant cast, etc.) podem localizar e corrigir issues automaticamente em um escopo maior: no arquivo atual, no projeto atual ou em toda a solução.

Você pode reconhecer essas correções por uma pequena seta exibida ao lado delas. Clique nessa seta ou pressione a tecla de seta para a direita no teclado para escolher onde aplicar a correção.

ReSharper quick-fixes for unresolved symbols

Correção de símbolos não resolvidos

Para erros causados por símbolos não resolvidos, o ReSharper fornece várias correções rápidas diferentes, por exemplo:

  • Se existir um símbolo em algum namespace referenciado em qualquer lugar da sua solução, o ReSharper mostrará um pop-up sugerindo a importação de todos os namespaces ausentes no arquivo.
  • Um conjunto de correções rápidas Create... ajudará você a gerar rapidamente várias declarações do símbolo de acordo com o contexto de uso.
  • Outra maneira de corrigir o problema é usar a correção rápida Find this type on nuget.org.... Ela ativará a janela NuGet Browser, que ajudará a localizar e instalar um pacote NuGet ausente.
Quick-fixes for code issues in ReSharper

Correções rápidas interativas

Correções rápidas que criam novos símbolos no seu código geralmente se tornam interativas, como neste exemplo, em que o ReSharper ajuda você a corrigir várias enumerações de IEnumerable ao forçar a enumeração antecipadamente a uma variável List<>.

Quando o ReSharper realça os campos de entrada obrigatórios com uma moldura vermelha, você pode aceitar o valor sugerido ou modificá-lo e pressionar Tab ou Enter para avançar até a posição de entrada seguinte ou pressionar Shift+Tab para retornar à posição de entrada anterior. Depois de concluir o último campo de entrada, o sinal de intercalação retornará ao modo normal.

ReSharper quick-fixes and context actions

Correções rápidas versus ações de contexto

O ReSharper também fornece ações de contexto que são exibidas na lista suspensa junto com correções rápidas.

A diferença entre elas é simples: correções rápidas são exibidas apenas para issues de código realçados, com o objetivo de corrigi-los, enquanto ações de contexto representam mini-refatorações que estão sempre disponíveis na lista suspensa ativada com Alt+Enter.

Highlighting code that matches a search pattern and replacing it with a replace pattern

Suas correções rápidas personalizadas

O ReSharper fornece Pesquisa e substituição estruturais para localizar o código que corresponde a um determinado padrão e, opcionalmente, substituí-lo por um código que corresponde a outro padrão. Ainda mais interessante é que o ReSharper pode monitorar continuamente sua solução para padrões de pesquisa, realçar o código que corresponde a esses padrões e fornecer correções rápidas para substituir o código de acordo com seus padrões de substituição.

Quick-fixes for code issues in ReSharper

C#: Usar interpolação de string - Exemplo

Durante anos, usar String.Format e outros métodos com suporte para formatação composta era a única maneira de incorporar valores de variáveis C# em literais de string. A partir do C# 6.0, você pode fazer isso de uma maneira muito mais legível, usando a interpolação de strings. Com a correção rápida do ReSharper, substituir a formatação composta pela interpolação de strings requer apenas algumas teclas pressionadas.

Quick-fixes for code issues in ReSharper

C#: Corrigir possíveis exceções NullReferenceException - Exemplo

Quando o ReSharper detecta uma chamada de método em um objeto que pode ser nulo, possivelmente levando a uma exceção System.NullReferenceException em tempo de execução, ele sugere duas correções rápidas. Uma correção tradicional adicionará uma rotina de verificação de nulos antes da chamada. No entanto, uma maneira mais sucinta de lidar com essa chamada é usar o operador .? nulo condicional, que foi introduzido no C# 6.0 para lidar com esse cenário.

Quick-fixes for code issues in ReSharper

C#: Converter foreach em expressão LINQ - Exemplo

Se você gosta da sintaxe LINQ no C#, o ReSharper o ajudará a verificar suas bases de código existentes em busca de loops que podem ser convertidos em expressões LINQ e, em seguida, você poderá usar uma correção rápida para realizar a conversão com rapidez e segurança.

Quick-fixes for code issues in ReSharper

C#: Remover criação de array redundante - Exemplo

Se um método C# usar um número variável de argumentos com a palavra-chave params, um array para esses argumentos será gerado pelo compilador, para que você não precise criar um array para os seus argumentos na chamada do método.

O que é mais interessante aqui é que o ReSharper sugere uma correção rápida que remove todo o código redundante no escopo desejado, incluindo qualificadores redundantes, argumentos, conversões, verificações de condição, atribuições não utilizadas, código inacessível e muito mais.

Quick-fixes for code issues in ReSharper

C#: Introduzir parâmetros opcionais - Exemplo

Se o objetivo único de uma função sobrecarregada for chamar a função "implementation" com valores padrão para alguns argumentos, o ReSharper ajudará você a remover essa sobrecarga e a usar parâmetros opcionais na função "implementation".

Quick-fixes for code issues in ReSharper

C#: Usar conversão explícita dentro do loop foreach - Exemplo

Por padrão, foreach permite uma conversão oculta para um tipo derivado. Por um lado, isso o torna fácil de usar, mas, por outro lado, pode levar a uma exceção System.InvalidCastException em tempo de execução. Aqui, uma correção rápida sugerida pelo ReSharper ajuda você a tornar a conversão explícita. Ela ainda não é segura, mas pelo menos não está mais oculta.

Quick-fixes for code issues in ReSharper

VB.NET: Especificar comparação de strings - Exemplo

Muitas correções rápidas funcionam para várias linguagens. Aqui está um exemplo de uma correção rápida disponível em C# e VB.NET: para esclarecer como exatamente duas strings são comparadas, o ReSharper sugere substituir a comparação do operador de igualdade por String.Equals(), que lidará com a formatação de maiúsculas e minúsculas e garantirá que a comparação seja sensível à cultura.

Quick-fixes for code issues in ReSharper

TypeScript: Adicionar proteção de tipo - Exemplo

Às vezes, os tipos de união TypeScript podem ser complicados. Por exemplo, o uso de um membro que não é comum a todos os tipos em um valor de tipo de união leva a um erro de compilador. Nesse caso, o ReSharper sugere várias correções rápidas que adicionam proteções de tipo diferentes a fim de desambiguar esse membro.

Quick-fixes for code issues in ReSharper

JSON: Adicionar propriedade necessária ausente - Exemplo

Em arquivos JSON, o ReSharper usa seu conhecimento sobre todas as propriedades necessárias de esquemas JSON vinculados para sugerir correções rápidas para propriedades necessárias ausentes.

Quick-fixes for code issues in ReSharper

CSS: Remover componente alfa - Exemplo

O CSS nível 3 e inferiores não permitem canais alfa na notação de cor hexadecimal. Portanto, o ReSharper sugere que você substitua a cor hexadecimal por uma cor RGBA ou HSLA ou que apenas remova o valor do canal alfa.