Share via


Remover atribuição de valor desnecessária (IDE0059)

Property valor
ID da regra IDE0059
Título Remover atribuição de valor desnecessária
Categoria Estilo
Subcategoria Regras de código desnecessárias (preferências no nível da expressão)
Línguas aplicáveis C# e Visual Basic
Opções csharp_style_unused_value_assignment_preference
visual_basic_style_unused_value_assignment_preference

Descrição geral

Esta regra sinaliza atribuições de valor desnecessárias. Por exemplo:

// IDE0059: value written to 'v' is never
// read, so assignment to 'v' is unnecessary.
int v = Compute();
v = Compute2();

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

  • Se a expressão no lado direito da atribuição não tiver efeitos colaterais, remova a expressão ou toda a instrução de atribuição. Isso melhora o desempenho, evitando cálculos desnecessários.

    int v = Compute2();
    
  • Se a expressão no lado direito da atribuição tiver efeitos colaterais, substitua o lado esquerdo da atribuição por um descarte (somente C#) ou uma variável local que nunca é usada. Os descartes melhoram a clareza do código mostrando explicitamente a intenção de descartar um valor não utilizado.

    _ = Compute();
    int v = Compute2();
    

Opções

As opções para isso especificam se deve preferir o uso de um descarte ou de uma variável local não utilizada:

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

csharp_style_unused_value_assignment_preference

Property valor Description
Nome da opção csharp_style_unused_value_assignment_preference
Línguas aplicáveis C#
Valores de opção discard_variable Prefira usar um descarte ao atribuir um valor que não é usado
unused_local_variable Prefira usar uma variável local ao atribuir um valor que não é usado
Valor da opção padrão discard_variable
// csharp_style_unused_value_assignment_preference = discard_variable
int GetCount(Dictionary<string, int> wordCount, string searchWord)
{
    _ = wordCount.TryGetValue(searchWord, out var count);
    return count;
}

// csharp_style_unused_value_assignment_preference = unused_local_variable
int GetCount(Dictionary<string, int> wordCount, string searchWord)
{
    var unused = wordCount.TryGetValue(searchWord, out var count);
    return count;
}

visual_basic_style_unused_value_assignment_preference

Property valor Description
Nome da opção visual_basic_style_unused_value_assignment_preference
Línguas aplicáveis Visual Basic
Valores de opção unused_local_variable Prefira usar uma variável local ao atribuir um valor que não é usado
Valor da opção padrão unused_local_variable
' visual_basic_style_unused_value_assignment_preference = unused_local_variable
Dim unused = Computation()

Suprimir um aviso

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

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

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

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

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

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

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

Property valor
ID da regra IDE0059
Título O valor não é utilizado
Categoria Estilo
Línguas aplicáveis F#
Opções None

Descrição geral

Esta regra sinaliza atribuições de valor desnecessárias. Por exemplo, answer não é usado no seguinte trecho:

type T() =
    let answer = 42

Consulte também