Dela via


CA2251: Använd String.Equals över String.Compare

Egenskap Värde
Regel-ID CA2251
Title Använd String.Equals över String.Compare
Kategori Användning
Korrigeringen är antingen invasiv eller icke-invasiv Oumbrytbar
Aktiverad som standard i .NET 10 Nej
Tillämpliga språk C# och Visual Basic

Orsak

Resultatet av ett anrop till String.Compare jämförs med noll.

Regelbeskrivning

String.Compare är designad för att producera en totalordningjämförelse som kan användas för sortering. Om du bara bryr dig om strängarnas likhet, är det både tydligare och sannolikt snabbare att använda en motsvarande överlagring av String.Equals.

Så här åtgärdar du överträdelser

Om du vill åtgärda överträdelser av den här regeln ersätter du uttrycket som jämför resultatet av String.Compare med ett anrop till String.Equals.

Example

string leftValue = "...";
string rightValue = "...";

// This code violates the rule.
bool areEqualUsingCompare = string.Compare(leftValue, rightValue, StringComparison.OrdinalIgnoreCase) == 0;

// This code satisfies the rule.
bool areEqualUsingEquals = string.Equals(leftValue, rightValue, StringComparison.OrdinalIgnoreCase);

När du ska ignorera varningar

Det är säkert att ignorera varningar från den här regeln.

Ignorera en varning

Om du bara vill förhindra en enda överträdelse lägger du till förprocessordirektiv i källfilen för att inaktivera och aktiverar sedan regeln igen.

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

Om du vill inaktivera regeln för en fil, mapp eller ett projekt anger du dess allvarlighetsgrad till none i konfigurationsfilen.

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

Mer information finns i Så här utelämnar du kodanalysvarningar.

Se även