Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Előnyben részesítse a statikus
| Tulajdonság | Érték |
|---|---|
| Szabályazonosító | CA1850 |
| Cím | Részesítse előnyben a statikus HashData függvényt a ComputeHash fölött. |
| Kategória | Teljesítmény |
| A javítás romboló vagy nem romboló | Nem törhető |
| Alapértelmezés szerint engedélyezve a .NET 10-ben | Javaslatként |
| Alkalmazandó nyelvek | C# és Visual Basic |
Ok
Egy HashAlgorithm-ból származó típus példánya jön létre a ComputeHash metódusának meghívásához, és ennek a típusnak van egy statikus HashData metódusa.
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.
Hatékonyabb a statikus HashData metódusok használata, mint egy HashAlgorithm meghívandó ComputeHashpé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.