Remover valor de expressão desnecessária (IDE0058)

Propriedade Valor
ID da regra IDE0058
Título Remover valor de expressão desnecessária
Categoria Estilo
Subcategoria Regras de linguagem (preferências no nível de expressão)
Linguagens aplicáveis C# e Visual Basic
Opções csharp_style_unused_value_expression_statement_preference
visual_basic_style_unused_value_expression_statement_preference

Visão geral

Essa regra sinaliza valores de expressão não utilizados. Por exemplo:

void M()
{
  Compute(); // IDE0058: computed value is never used.
}

int Compute();

Você pode executar uma das ações a seguir para corrigir essa violação:

  • Se a expressão não tiver efeitos colaterais, remova a instrução inteira. Isso melhora o desempenho evitando computação desnecessária.

  • Se a expressão no lado direito da atribuição tiver efeitos colaterais, substitua o lado esquerdo da atribuição por um discard (somente C#) ou uma variável local que nunca tenha sido usada. Isso melhora a clareza do código mostrando explicitamente a intenção de descartar um valor não utilizado.

    _ = Compute();
    

Opções

As opções para isso especificam se prefere usar um discard ou uma variável local não utilizada:

Para obter informações sobre como configurar as opções, consulte Formato da opção.

csharp_style_unused_value_expression_statement_preference

Propriedade Valor Descrição
Nome da opção csharp_style_unused_value_expression_statement_preference
Linguagens aplicáveis C#
Valores da opção discard_variable Preferir atribuir uma expressão não utilizada a um descarte
unused_local_variable Preferir atribuir uma expressão não utilizada a uma variável local que nunca é usada
Valor da opção padrão discard_variable
// Original code:
System.Convert.ToInt32("35");

// After code fix for IDE0058:

// csharp_style_unused_value_expression_statement_preference = discard_variable
_ = System.Convert.ToInt32("35");

// csharp_style_unused_value_expression_statement_preference = unused_local_variable
var unused = Convert.ToInt32("35");

visual_basic_style_unused_value_expression_statement_preference

Propriedade Valor Descrição
Nome da opção visual_basic_style_unused_value_expression_statement_preference
Linguagens aplicáveis Visual Basic
Valores da opção unused_local_variable Preferir atribuir uma expressão não utilizada a uma variável local que nunca é usada
Valor da opção padrão unused_local_variable
' visual_basic_style_unused_value_expression_statement_preference = unused_local_variable
Dim unused = Computation()

Suprimir um aviso

Se você quiser suprimir apenas uma violação, adicione diretivas de pré-processador ao arquivo de origem para desabilitar e, em seguida, reabilite a regra.

#pragma warning disable IDE0058
// The code that's violating the rule is on this line.
#pragma warning restore IDE0058

Para desabilitar a regra em um arquivo, uma pasta ou um projeto, defina a severidade como none no arquivo de configuração.

[*.{cs,vb}]
dotnet_diagnostic.IDE0058.severity = none

Para desabilitar todas as regras de estilo de código, defina a severidade da categoria Style como none no arquivo de configuração.

[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none

Para obter mais informações, confira Como suprimir avisos de análise de código.

Confira também