Share via


CA1850: A statikus HashData metódus előnyben részesítve ComputeHash

Tulajdonság Érték
Szabályazonosító CA1850
Cím HashData Statikus módszer előnyben részesítveComputeHash
Kategória Teljesítmény
A javítás kompatibilitástörő vagy nem törik Nem törés
Alapértelmezés szerint engedélyezve a .NET 8-ban Javaslatként

Ok

A metódus meghívásához ComputeHash létrejön egy olyan típuspéldány, amelyből HashAlgorithm származik, és ennek a típusnak statikus HashData metódusa van.

Szabály leírása

A .NET 5-ben a következő típusok esetében vezettek be statikus HashData metódusokat:

Ezek a módszerek megkönnyítik a kód használatát olyan esetekben, amikor csak kivonatolni szeretne néhány adatot.

A statikus HashData metódusok használata hatékonyabb, mint egy HashAlgorithm meghívni ComputeHashkívánt példány létrehozása és kezelése.

Szabálysértések kijavítása

A szabályt általában úgy lehet kijavítani, hogy módosítja a kódot, hogy meghívja HashData és eltávolítsa a HashAlgorithm példány használatát.

public bool CheckHash(byte[] buffer)
{
  using (var sha256 = SHA256.Create())
  {
    byte[] digest = sha256.ComputeHash(buffer);
    return DoesHashExist(digest);
  }
}
Public Function CheckHash(buffer As Byte()) As Boolean
  Using sha256 As SHA256 = SHA256.Create()
    Dim digest As Byte() = sha256.ComputeHash(buffer)
    Return DoesHashExist(digest)
  End Using
End Function

Az előző kód módosítható úgy, hogy közvetlenül meghívja a statikus HashData(Byte[]) metódust.

public bool CheckHash(byte[] buffer)
{
    byte[] digest = SHA256.HashData(buffer);
    return DoesHashExist(digest);
}
Public Function CheckHash(buffer As Byte()) As Boolean
  Dim digest As Byte() = SHA256.HashData(buffer)
  Return DoesHashExist(digest)
End Function

Mikor kell letiltani a figyelmeztetéseket?

A szabály figyelmeztetésének mellőzése biztonságos.

Figyelmeztetés mellőzése

Ha csak egyetlen szabálysértést szeretne letiltani, adjon hozzá előfeldolgozási irányelveket a forrásfájlhoz a szabály letiltásához és újbóli engedélyezéséhez.

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

Ha le szeretné tiltani egy fájl, mappa vagy projekt szabályát, állítsa annak súlyosságát none a konfigurációs fájlban.

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

További információ: Kódelemzési figyelmeztetések letiltása.

Kapcsolódó információk