CA1853: Niepotrzebne wywołanie elementu "Dictionary.ContainsKey(key)"
Właściwości | Wartość |
---|---|
Identyfikator reguły | CA1853 |
Tytuł | Niepotrzebne wywołanie elementu "Dictionary.ContainsKey(key)" |
Kategoria | Wydajność |
Poprawka powodująca niezgodność lub niezgodność | Niezgodność |
Wprowadzona wersja | .NET 7 |
Domyślnie włączone na platformie .NET 9 | Jako sugestia |
Przyczyna
Wywołanie metody jest Dictionary<TKey,TValue>.Remove(TKey) chronione za pomocą wywołania metody Dictionary<TKey,TValue>.ContainsKey(TKey).
Opis reguły
Nie ma potrzeby ochrony Dictionary.Remove(key)
za pomocą polecenia Dictionary.ContainsKey(key)
. Dictionary<TKey,TValue>.Remove(TKey) już sprawdza, czy klucz istnieje i nie zgłasza go, jeśli nie istnieje.
Jak naprawić naruszenia
Usuń kod ochrony, który wywołuje metodę Dictionary<TKey,TValue>.ContainsKey(TKey).
Przykład
Poniższy fragment kodu przedstawia naruszenie ca1853:
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
Poniższy fragment kodu naprawia naruszenie:
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
Kiedy pomijać ostrzeżenia
Można bezpiecznie pominąć ostrzeżenie, jeśli wydajność nie jest problemem.
Pomijanie ostrzeżenia
Jeśli chcesz po prostu pominąć pojedyncze naruszenie, dodaj dyrektywy preprocesora do pliku źródłowego, aby wyłączyć, a następnie ponownie włączyć regułę.
#pragma warning disable CA1853
// The code that's violating the rule is on this line.
#pragma warning restore CA1853
Aby wyłączyć regułę dla pliku, folderu lub projektu, ustaw jego ważność na none
w pliku konfiguracji.
[*.{cs,vb}]
dotnet_diagnostic.CA1853.severity = none
Aby uzyskać więcej informacji, zobacz Jak pominąć ostrzeżenia dotyczące analizy kodu.