Użyj polecenia "System.HashCode.Combine" (IDE0070)

Właściwość Wartość
Identyfikator zasady IDE0070
Tytuł Korzystanie z polecenia System.HashCode.Combine
Kategoria Styl
Subcategory (Podkategoria) Reguły języka (preferencje na poziomie wyrażenia)
Odpowiednie języki C# i Visual Basic

Omówienie

Ta reguła zaleca użycie metody do obliczenia kodu skrótu System.HashCode.Combine zamiast używania niestandardowej logiki obliczeń kodu skrótu.

Opcje

Ta reguła nie ma skojarzonych opcji stylu kodu.

Przykład

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

Pomijanie ostrzeżenia

Jeśli chcesz pominąć tylko jedno naruszenie, dodaj dyrektywy preprocesora do pliku źródłowego, aby wyłączyć, a następnie ponownie włączyć regułę.

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

Aby wyłączyć regułę dla pliku, folderu lub projektu, ustaw jego ważność na none w pliku konfiguracji.

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

Aby wyłączyć wszystkie reguły stylu kodu, ustaw ważność dla kategorii Style na none w pliku konfiguracji.

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

Aby uzyskać więcej informacji, zobacz Jak pominąć ostrzeżenia analizy kodu.

Zobacz też