Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
As regras de linguagem de estilo de código afetam como várias construções de linguagens de programação .NET, por exemplo, modificadores e parênteses, são usadas.
Esta categoria também inclui regras que identificam partes da base de código que são desnecessárias e podem ser refatoradas ou removidas. A presença de código desnecessário indica um ou mais dos seguintes problemas:
- Legibilidade: Código que degrada desnecessariamente a legibilidade.
- Manutenabilidade: Código que não é mais usado após a refatoração e é mantido desnecessariamente.
- Desempenho: computação desnecessária que não tem efeitos colaterais e leva a uma sobrecarga de desempenho desnecessária.
- Funcionalidade: Problema funcional no código que torna o código necessário redundante. Por exemplo, IDE0060 sinaliza parâmetros não utilizados onde o método ignora acidentalmente um parâmetro de entrada.
As regras linguísticas inserem-se nas seguintes categorias:
- Regras de estilo .NET: regras que se aplicam a C# e Visual Basic. Os nomes das opções para essas regras começam com o prefixo
dotnet_style_. - Regras de estilo C#: Regras específicas do código C#. Os nomes das opções para essas regras começam com o prefixo
csharp_style_. - Regras de estilo do Visual Basic: regras específicas do código do Visual Basic. Os nomes das opções para essas regras começam com o prefixo
visual_basic_style_.
Formato da opção
Muitas das regras de idioma têm uma ou mais opções associadas para personalizar o estilo preferido. Por exemplo, Usar instrução "usando" simples (IDE0063) tem a opção csharp_prefer_simple_using_statement associada que permite definir se você prefere uma using declaração ou uma using instrução. A regra aplica as opções que escolheres num nível especificado, por exemplo, aviso ou erro.
As opções para regras de idioma podem ser especificadas em um arquivo de configuração com o seguinte formato:
option_name = value (Visual Studio 2019 e posterior)
ou
option_name = value:severity
Valor
Para cada regra de idioma, você especifica um valor que define se ou quando preferir o estilo. Muitas regras aceitam um valor de
true(preferem este estilo) oufalse(não preferem este estilo). Outras regras aceitam valores comowhen_on_single_lineounever.Severidade (opcional no Visual Studio 2019 e versões posteriores)
A segunda parte da regra especifica o nível de severidade da regra. No .NET 9 e em versões posteriores, a severidade é sempre respeitada, ou seja, dentro de IDEs de desenvolvimento e durante a execução de compilações através da linha de comando. No .NET 8 e versões anteriores, essa configuração de gravidade só é respeitada dentro de IDEs de desenvolvimento, como o Visual Studio, e não durante a compilação.
Se você estiver usando o SDK do .NET 8 ou uma versão anterior e quiser que a gravidade seja respeitada no momento da compilação, poderá fazê-lo de duas maneiras:
- Defina as propriedades
<AnalysisLevel>ou<AnalysisLevelStyle>como9.0ou um valor superior, ou comopreview. - Defina a severidade usando a sintaxe de configuração de severidade baseada no ID da regra para analisadores. A sintaxe assume a forma
dotnet_diagnostic.<rule ID>.severity = <severity>, por exemplo,dotnet_diagnostic.IDE0040.severity = warning. Para obter mais informações, consulte Nível de gravidade.
- Defina as propriedades
Gorjeta
A partir do Visual Studio 2019, pode configurar regras de estilo de código no menu Ações Rápidas após uma violação de estilo ocorrer.
Índice de regras
As regras de linguagem e código desnecessárias são ainda categorizadas em subcategorias, como preferências de nível de expressão, preferências de bloco de código e preferências de modificador.
-
usingPreferências diretivas - Preferências de bloqueio de código
- Membros com corpo de expressão
- Preferências no nível da expressão
- Preferências de campo
- Palavras-chave de idioma vs. preferências de tipos de estrutura
- Preferências do modificador
- Preferências de nova linha
- Preferências de verificação nula
- Preferências de parâmetros
- Preferências entre parênteses
- Preferências de correspondência de padrões
- Preferências de supressão
-
This.eme.preferências -
varpreferências
using Preferências diretivas
Regras de estilo .NET (C# e Visual Basic):
Regras de estilo C#:
Preferências de bloqueio de código
Regras de estilo C#:
- Adicionar chaves (IDE0011)
- Use a instrução "usando" simples (IDE0063)
- Preferências de declaração de namespace (IDE0160, IDE0161)
- Remover expressão lambda desnecessária (IDE0200)
- Converter para instruções de nível superior (IDE0210)
- Converter para o estilo de programa 'Program.Main' (IDE0211)
- Usar construtor primário (IDE0290)
- Prefira 'System.Threading.Lock' (IDE0330)
Membros com corpo de expressão
Regras de estilo C#:
- Usar corpo de expressão para os construtores (IDE0021)
- Usar corpo de expressão para métodos (IDE0022)
- Usar corpo de expressão para operadores (IDE0023, IDE0024)
- Usar corpo de expressão para propriedades (IDE0025)
- Usar corpo de expressão para indexadores (IDE0026)
- Usar corpo de expressão para acessadores (IDE0027)
- Utilize corpo de expressão para lambdas (IDE0053)
- Usar corpo de expressão para funções locais (IDE0061)
Preferências no nível da expressão
Regras de estilo .NET (C# e Visual Basic):
- Simplifique o nome (IDE0001)
- Simplifique o acesso dos membros (IDE0002)
- Remover transmissão desnecessária (IDE0004)
- Adicionar casos ausentes à instrução switch (IDE0010)
- Usar inicializadores de objeto (IDE0017)
- Usar inicializadores de coleção (IDE0028)
- A verificação nula pode ser simplificada (IDE0029, IDE0030 IDE0270)
- Usar propagação nula (IDE0031)
- Usar propriedade implementada automaticamente (IDE0032)
- Usar nome de tupla explicitamente fornecido (IDE0033)
- Remover código inacessível (IDE0035)
- Usar nomes de membros inferidos (IDE0037)
- Use uma verificação de 'é nulo' (IDE0041)
- Usar expressão condicional para atribuição (IDE0045)
- Usar expressão condicional para retorno (IDE0046)
- Converter tipo anônimo em tupla (IDE0050)
- Remover o membro privado não utilizado (IDE0051)
- Remover membro privado não lido (IDE0052)
- Usar atribuição composta (IDE0054, IDE0074)
- Remover valor de expressão desnecessário (IDE0058)
- Remover atribuição de valor desnecessária (IDE0059)
- Use 'System.HashCode.Combine' (IDE0070)
- Simplificar a interpolação (IDE0071)
- Simplificar a expressão condicional (IDE0075)
-
Converter
typeofemnameof(IDE0082) - Remover operador de igualdade desnecessário (IDE0100)
- Simplifique a expressão LINQ (IDE0120)
- Simplifique a verificação de tipo e a transmissão do LINQ (IDE0121)
- O namespace não corresponde à estrutura de pastas (IDE0130)
Regras de estilo C#:
- Utilizar instrução throw (IDE0016)
- Declaração de variável embutida (IDE0018)
- Simplifique a expressão 'padrão' (IDE0034)
- Usar função local em vez de lambda (IDE0039)
- Desconstruir declaração de variável (IDE0042)
- Usar operador de índice (IDE0056)
- Usar operador de intervalo (IDE0057)
- Adicionar casos ausentes à expressão switch (IDE0072)
- Remover operador de supressão desnecessário (IDE0080)
-
Simplificar
newa expressão (IDE0090) - Remover eliminação desnecessária (IDE0110)
- Prefira a verificação de 'null' à verificação de tipos (IDE0150)
- Usar tupla para trocar valores (IDE0180)
- Adicionar conversão explícita no loop foreach (IDE0220)
- Usar UTF-8 string literal (IDE0230)
- A diretiva anulável é redundante (IDE0240)
- A diretiva anulável é desnecessária (IDE0241)
- Usar expressão de coleção para matriz (IDE0300)
- Usar expressão de coleção para vazio (IDE0301)
- Usar expressão de coleção para alocação de pilha (IDE0302)
-
Usar expressão de coleção para
Create()(IDE0303) - Usar expressão de coleção para construtor (IDE0304)
- Usar expressão de coleção fluente (IDE0305)
- Usar expressão de coleção para "new" (IDE0306)
- Usar tipo genérico não acoplado (IDE0340)
- Usar lambda (IDE0350) digitado implicitamente
- Simplifique o acessador de propriedade (IDE0360)
Regras de estilo do Visual Basic:
-
Remover
ByVal(IDE0081) -
Use o operador de correspondência de padrões (
IsNotoperador) (IDE0084) - Simplificar a criação de objetos (IDE0140)
Preferências de campo
Regras de estilo .NET (C# e Visual Basic):
Palavras-chave de idioma vs. preferências de tipos de estrutura
Regras de estilo .NET (C# e Visual Basic):
Preferências do modificador
Regras de estilo .NET (C# e Visual Basic):
Regras de estilo C#:
- Tornar a função local estática (IDE0062)
- Tornar os campos struct graváveis (IDE0064)
- A estrutura pode ser marcada como 'só de leitura' (IDE0250)
- O membro pode ser tornado 'somente leitura' (IDE0251)
- Tornar estática a função anónima (IDE0320)
-
Remover modificador desnecessário
unsafe(IDE0380)
Preferências de nova linha
Regras de estilo .NET (C# e Visual Basic):
- Evite várias linhas em branco (IDE2000)†
- Linha em branco necessária entre o bloco e a instrução subsequente (IDE2003)†
Regras de estilo C#:
- As instruções incorporadas devem estar em sua própria linha (IDE2001)†
- As chaves consecutivas não devem ter uma linha em branco entre elas (IDE2002)†
- Linha em branco não permitida após o inicializador do construtor dois pontos (IDE2004†
- Linha em branco não permitida após o token de expressão condicional (IDE2005)†
- Linha em branco não permitida após o token de cláusula de expressão de seta (IDE2006)†
†Estas regras são experimentais e estão sujeitas a alterações ou remoção.
Preferências de verificação nula
Regras de estilo C#:
Preferências de parâmetros
Regras de estilo .NET (C# e Visual Basic):
Preferências entre parênteses
Regras de estilo .NET (C# e Visual Basic):
Preferências de correspondência de padrões
Regras de estilo C#:
- Use a correspondência de padrões para evitar 'as' seguido de uma verificação de 'null' (IDE0019)
- Use a comparação de padrões para evitar a verificação de "is" seguida por uma conversão (IDE0020, IDE0038)
- Usar expressão de switch (IDE0066)
- Usar correspondência de padrões (IDE0078 e IDE0260)
-
Usar o operador de correspondência de padrões (
not) (IDE0083) - Simplifique o padrão de propriedade (IDE0170)
Preferências de supressão
Regras de estilo .NET (C# e Visual Basic):
Regras de estilo C#:
preferências de This. e me.
Regras de estilo .NET (C# e Visual Basic):
var preferências
Regras de estilo C#: