Usare "System.HashCode.Combine" (IDE0070)
Proprietà | Valore |
---|---|
ID regola | IDE0070 |
Titolo | Utilizzare System.HashCode.Combine . |
Categoria | Stile |
Subcategory | Regole del linguaggio (preferenze a livello di espressione) |
Lingue applicabili | C# e Visual Basic |
Panoramica
Questa regola consiglia l'uso del System.HashCode.Combine metodo per calcolare un codice hash anziché usare la logica di calcolo del codice hash personalizzata.
Opzioni
Questa regola non include opzioni di tipo codice associate.
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 vuole 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à none
su nel file di configurazione.
[*.{cs,vb}]
dotnet_diagnostic.IDE0070.severity = none
Per disabilitare tutte le regole in stile codice, impostare la gravità per la categoria Style
none
su 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.