CA2251: Gebruik String.Equals boven String.Compare

Eigenschap Waarde
Regel-id CA2251
Titel Gebruik String.Equals boven String.Compare
Categorie Gebruik
Fix kan brekend of niet-brekend zijn Niet-brekend
Standaard ingeschakeld in .NET 10 Nee
Toepasselijke talen C# en Visual Basic

Oorzaak

Het resultaat van een aanroep String.Compare wordt vergeleken met nul.

Beschrijving van regel

String.Compare is ontworpen voor het produceren van een vergelijking van de totale volgorde die kan worden gebruikt voor het sorteren. Als u alleen wilt weten of de tekenreeksen gelijk zijn, is het zowel duidelijker als waarschijnlijk sneller om een equivalent overladen van String.Equals te gebruiken.

Hoe schendingen op te lossen

Als u schendingen van deze regel wilt oplossen, vervangt u de expressie die het resultaat String.Compare vergelijkt met een aanroep naar 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);

Wanneer waarschuwingen onderdrukken

Het is veilig om waarschuwingen van deze regel te onderdrukken.

Een waarschuwing onderdrukken

Als u slechts één schending wilt onderdrukken, voegt u preprocessorrichtlijnen toe aan uw bronbestand om de regel uit te schakelen en vervolgens opnieuw in te schakelen.

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

Als u de regel voor een bestand, map of project wilt uitschakelen, stelt u de ernst none ervan in op het configuratiebestand.

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

Zie voor meer informatie Hoe codeanalysewaarschuwingen te onderdrukken.

Zie ook