Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
| 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 |
| Options | dotnet_prefer_system_hash_code |
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
Seçenekler, kuralın zorlamasını istediğiniz davranışı belirtir. Seçenekleri yapılandırma hakkında bilgi için bkz. Seçenek biçimi.
dotnet_prefer_system_hash_code
| Mülk | Değer | Açıklama |
|---|---|---|
| Seçenek adı | dotnet_prefer_system_hash_code | |
| Seçenek değerleri | true |
Karma kod hesaplaması için kullanmayı System.HashCode.Combine tercih edin. |
false |
Karma kodu hesaplamak için System.HashCode.Combine kullanmayı tercih etmeyin. |
|
| Varsayılan seçenek değeri | true |
Ö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 noneyapılandırma dosyasında 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 noneyapılandırma dosyasında olarak ayarlayın.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
Daha fazla bilgi için bkz. Kod analizi uyarılarını gizleme.