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

Propriedade 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)
Linguagens aplicáveis C# e Visual Basic
Opções csharp_style_unused_value_assignment_preference
visual_basic_style_unused_value_assignment_preference

Visão geral

Essa regra sinaliza as 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 ações a seguir para corrigir essa violação:

  • Se a expressão do lado direito da atribuição não tiver efeitos colaterais, remova a expressão ou a instrução de atribuição inteira. Isso melhora o desempenho evitando computação desnecessária.

    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 discard (somente C#) ou uma variável local que nunca foi usada. Descarta melhorar 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 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_assignment_preference

Propriedade Valor Descrição
Nome da opção csharp_style_unused_value_assignment_preference
Linguagens aplicáveis C#
Valores da opção discard_variable Preferir usar um discard ao atribuir um valor que não é utilizado
unused_local_variable Prefira usar uma variável local ao atribuir um valor não utilizado
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

Propriedade Valor Descrição
Nome da opção visual_basic_style_unused_value_assignment_preference
Linguagens aplicáveis Visual Basic
Valores da opção unused_local_variable Prefira usar uma variável local ao atribuir um valor não utilizado
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 violação, adicione diretivas de pré-processador ao arquivo de origem para desabilitar e, em seguida, reabilite 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 em um arquivo, uma pasta ou um projeto, defina a 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 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.

Propriedade Valor
ID da regra IDE0059
Título O valor não é utilizado
Categoria Estilo
Linguagens aplicáveis F#
Opções Nenhum

Visão geral

Essa regra sinaliza as atribuições de valor desnecessárias. Por exemplo, answer não é usado no snippet a seguir:

type T() =
    let answer = 42

Confira também