Share via


Utilizar "System.HashCode.Combine" (IDE0070)

Propriedade Valor
ID da Regra IDE0070
Título Utilizar o comando System.HashCode.Combine
Categoria Estilo
Subcategoria Regras de linguagem (preferências ao nível da expressão)
Idiomas aplicáveis C# e Visual Basic

Descrição Geral

Esta regra recomenda a utilização do System.HashCode.Combine método para calcular um código hash em vez de utilizar a lógica de computação de código hash personalizada.

Opções

Esta regra não tem opções de estilo de código associadas.

Exemplo

class B
{
    public override int GetHashCode() => 0;
}

class C : B
{
    int j;

    // Code with violations
    public override int GetHashCode()
    {
        // IDE0070: GetHashCode can be simplified.
        var hashCode = 339610899;
        hashCode = hashCode * -1521134295 + base.GetHashCode();
        hashCode = hashCode * -1521134295 + j.GetHashCode();
        return hashCode;
    }

    // Fixed code
    public override int GetHashCode()
    {
        return System.HashCode.Combine(base.GetHashCode(), j);
    }
}

Suprimir um aviso

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

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

Para desativar a regra para um ficheiro, pasta ou projeto, defina a sua gravidade como none no ficheiro de configuração.

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

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

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

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

Ver também