Использование "System.HashCode.Combine" (IDE0070)
Свойство | Значение |
---|---|
Идентификатор правила | IDE0070 |
Title | Используйте System.HashCode.Combine . |
Категория | Стиль |
Подкатегория | Правила языка (настройки уровня выражения) |
Применимые языки | C# и Visual Basic |
Обзор
Это правило рекомендует использовать System.HashCode.Combine метод для вычисления хэш-кода вместо использования пользовательской логики вычисления хэш-кода.
Варианты
Это правило не имеет связанных параметров стиля кода.
Пример
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);
}
}
Отключение предупреждений
Если вы хотите отключить только одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и снова включить правило.
#pragma warning disable IDE0070
// The code that's violating the rule is on this line.
#pragma warning restore IDE0070
Чтобы отключить правило для файла, папки или проекта, присвойте ей значение серьезности none
в файле конфигурации.
[*.{cs,vb}]
dotnet_diagnostic.IDE0070.severity = none
Чтобы отключить все правила в стиле кода, задайте серьезность для категории Style
none
в файле конфигурации.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
Дополнительные сведения см. в разделе Практическое руководство. Скрытие предупреждений анализа кода.