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 ComputeHash
kí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
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: