Aracılığıyla paylaş


'System.HashCode.Combine' kullanma (IDE0070)

Mülk Değer
Kural Kimliği IDE0070
Başlık System.HashCode.Combine kullanma
Kategori Üslup
Alt Kategori Dil kuralları (ifade düzeyi tercihleri)
Geçerli diller C# ve Visual Basic

Genel bakış

Bu kural, özel karma kod hesaplama mantığı kullanmak yerine karma kodu hesaplamak için System.HashCode.Combine yönteminin kullanılmasını önerir.

Seçenekler

Bu kuralın ilişkili kod stili seçeneği yoktur.

Örnek

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

Uyarıyı gizleme

Yalnızca tek bir ihlali engellemek istiyorsanız, kuralı devre dışı bırakmak ve sonra yeniden etkinleştirmek için kaynak dosyanıza ön işlemci yönergeleri ekleyin.

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

Bir dosya, klasör veya projenin kuralını devre dışı bırakmak için önem derecesini yapılandırma dosyasında none olarak ayarlayın.

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

Tüm kod stili kurallarını devre dışı bırakmak için kategori Style önem derecesini yapılandırma dosyasında none olarak ayarlayın.

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

Daha fazla bilgi için bkz. Kod analizi uyarılarını gizleme.

Ayrıca bkz.