System.HashCode.Combine gebruiken (IDE0070)
Eigenschap | Waarde |
---|---|
Regel-id | IDE0070 |
Titel | System.HashCode.Combine gebruiken |
Categorie | Stijl |
Subcategorie | Taalregels (voorkeuren op expressieniveau) |
Toepasselijke talen | C# en Visual Basic |
Overzicht
Deze regel raadt het gebruik van de System.HashCode.Combine methode aan om een hash-code te berekenen in plaats van aangepaste rekenlogica voor hash-code te gebruiken.
Opties
Deze regel heeft geen gekoppelde opties voor codestijl.
Voorbeeld
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);
}
}
Een waarschuwing onderdrukken
Als u slechts één schending wilt onderdrukken, voegt u preprocessor-instructies toe aan het bronbestand om de regel uit te schakelen en vervolgens opnieuw in te schakelen.
#pragma warning disable IDE0070
// The code that's violating the rule is on this line.
#pragma warning restore IDE0070
Als u de regel voor een bestand, map of project wilt uitschakelen, stelt u de ernst in op none
in het configuratiebestand.
[*.{cs,vb}]
dotnet_diagnostic.IDE0070.severity = none
Als u alle codestijlregels wilt uitschakelen, stelt u de ernst voor de categorie Style
in op none
in het configuratiebestand.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
Zie Waarschuwingen voor codeanalyse onderdrukken voor meer informatie.