CA1853: A Dictionary.ContainsKey(key)" szükségtelen hívása
Tulajdonság | Érték |
---|---|
Szabályazonosító | CA1853 |
Cím | A "Dictionary.ContainsKey(key)" szükségtelen hívása |
Kategória | Teljesítmény |
A javítás kompatibilitástörő vagy nem törik | Nem törés |
Bevezetett verzió | .NET 7 |
Alapértelmezés szerint engedélyezve a .NET 8-ban | Javaslatként |
Ok
A hívásokat Dictionary<TKey,TValue>.Remove(TKey) egy hívás Dictionary<TKey,TValue>.ContainsKey(TKey)védi.
Szabály leírása
Nem kell őrködni Dictionary.Remove(key)
vele Dictionary.ContainsKey(key)
. Dictionary<TKey,TValue>.Remove(TKey) már ellenőrzi, hogy a kulcs létezik-e, és nem dobja-e, ha nem létezik.
Szabálysértések kijavítása
Távolítsa el a hívható Dictionary<TKey,TValue>.ContainsKey(TKey)védelmi kódot.
Példa
A következő kódrészlet a CA1853 megsértését mutatja be:
Dictionary<string, int> d = new();
if (d.ContainsKey("name"))
d.Remove("name");
Class C
Shared Sub S()
Dim d As New Dictionary(Of String, Integer)
If d.ContainsKey("name") Then
d.Remove("name")
End If
End Sub
End Class
A következő kódrészlet kijavítja a szabálysértést:
Dictionary<string, int> d = new();
d.Remove("name");
Class C
Shared Sub S()
Dim d As New Dictionary(Of String, Integer)
d.Remove("name")
End Sub
End Class
Mikor kell letiltani a figyelmeztetéseket?
Nyugodtan el lehet tiltani a figyelmeztetést, ha a teljesítmény nem okoz gondot.
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 CA1853
// The code that's violating the rule is on this line.
#pragma warning restore CA1853
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.CA1853.severity = none
További információ: Kódelemzési figyelmeztetések letiltása.
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: