Usare "System.HashCode.Combine" (IDE0070)

Proprietà Valore
ID regola IDE0070
Titolo Usare System.HashCode.Combine
categoria Stile
sottocategoria Regole del linguaggio (preferenze a livello di espressione)
lingue applicabili C# e Visual Basic
Opzioni dotnet_prefer_system_hash_code

Panoramica

Questa regola consiglia l'uso del metodo System.HashCode.Combine per calcolare un codice hash anziché usare la logica di calcolo del codice hash personalizzata.

Opzioni

Le opzioni specificano il comportamento che la regola deve imporre. Per informazioni sulla configurazione delle opzioni, vedere Formato delle opzioni.

dotnet_prefer_system_hash_code

Proprietà Valore Descrizione
Nome opzione dotnet_prefer_system_hash_code
Valori delle opzioni true Preferisce usare System.HashCode.Combine per il calcolo del codice hash.
false Si sconsiglia l'uso di System.HashCode.Combine per il calcolo del codice hash.
Valore dell'opzione predefinito true

Esempio

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);
    }
}

Eliminare un avviso

Se si desidera eliminare solo una singola violazione, aggiungere direttive del preprocessore al file di origine per disabilitare e quindi riabilitare la regola.

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

Per disabilitare la regola per un file, una cartella o un progetto, impostarne la gravità su none nel file di configurazione .

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

Per disabilitare tutte le regole di tipo codice, impostare la gravità per la categoria Style su none nel file di configurazione .

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

Per altre informazioni, vedere Come eliminare gli avvisi di analisi del codice.

Vedere anche