Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
| Ingatlan | Érték |
|---|---|
| Szabályazonosító | CA1875 |
| Title | Használja a Regex.Count-t |
| Kategória | teljesítmény |
| A javítás törést okoz vagy nem okoz törést | Nem törhető |
| Alapértelmezés szerint engedélyezve a .NET 10-ben | Javaslatként |
Oka
A Count forrás Regex.Matches tulajdonsága MatchCollection a találatok számának lekérésére szolgál.
Szabály leírása
Regex.Count egyszerűbb és gyorsabb, mint Regex.Matches(...).Counta . A Count() metódus az egyezések számlálására van optimalizálva anélkül, hogy a teljes MatchCollection. A hívás Matches() és a .Count hozzáférés szükségtelen munkát végez, ami hatással lehet a teljesítményre.
Szabálysértések kijavítása
Cserélje le a hívásokat a
Elérhető egy kódjavítás , amely automatikusan végrehajtja ezt az átalakítást.
Example
A következő kódrészlet a CA1875 megsértését mutatja be:
using System.Text.RegularExpressions;
class Example
{
public int CountWords(string text)
{
// Violation
return Regex.Matches(text, @"\b\w+\b").Count;
}
}
Imports System.Text.RegularExpressions
Class Example
Public Function CountWords(text As String) As Integer
' Violation
Return Regex.Matches(text, "\b\w+\b").Count
End Function
End Class
A következő kódrészlet kijavítja a szabálysértést:
using System.Text.RegularExpressions;
class Example
{
public int CountWords(string text)
{
// Fixed
return Regex.Count(text, @"\b\w+\b");
}
}
Imports System.Text.RegularExpressions
Class Example
Public Function CountWords(text As String) As Integer
' Fixed
Return Regex.Count(text, "\b\w+\b")
End Function
End Class
Mikor kell letiltani a figyelmeztetéseket?
A szabály figyelmeztetését nyugodtan letilthatja, ha a teljesítmény nem okoz problémát, vagy ha a .NET olyan verzióját célozza meg, amely nem tartalmazza Regex.Count (a .NET 7 előtti verziót).
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 CA1875
// The code that's violating the rule is on this line.
#pragma warning restore CA1875
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.CA1875.severity = none
További információ: Kódelemzési figyelmeztetések letiltása.