Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de changer d’annuaire.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer d’annuaire.
| Propriété | Valeur |
|---|---|
| Identificateur de la règle | CA1874 |
| Titre | Utilisez Regex.IsMatch. |
| Catégorie | Niveau de performance |
| Le correctif est cassant ou non cassant | Non-breaking |
| Activé par défaut dans .NET 10 | À titre de suggestion |
La cause
La Success propriété du résultat est Regex.Match utilisée pour vérifier si un modèle correspond.
Description de la règle
Regex.IsMatch est plus simple et plus rapide que Regex.Match(...).Success. La IsMatch méthode est optimisée pour le cas où vous devez uniquement savoir si une correspondance existe, plutôt que ce qu’est la correspondance. L’appel Match() , puis la vérification Success effectue un travail inutile qui peut avoir un impact sur les performances.
Comment corriger les violations
Remplacez les appels par Regex.Match(...).SuccessRegex.IsMatch(...).
Un correctif de code qui effectue automatiquement cette transformation est disponible.
Example
L’extrait de code suivant montre une violation de l’autorité de certification 1874 :
using System.Text.RegularExpressions;
class Example
{
public bool IsValidEmail(string email)
{
// Violation
return Regex.Match(email, @"^[^@\s]+@[^@\s]+\.[^@\s]+$").Success;
}
}
Imports System.Text.RegularExpressions
Class Example
Public Function IsValidEmail(email As String) As Boolean
' Violation
Return Regex.Match(email, "^[^@\s]+@[^@\s]+\.[^@\s]+$").Success
End Function
End Class
L’extrait de code suivant corrige la violation :
using System.Text.RegularExpressions;
class Example
{
public bool IsValidEmail(string email)
{
// Fixed
return Regex.IsMatch(email, @"^[^@\s]+@[^@\s]+\.[^@\s]+$");
}
}
Imports System.Text.RegularExpressions
Class Example
Public Function IsValidEmail(email As String) As Boolean
' Fixed
Return Regex.IsMatch(email, "^[^@\s]+@[^@\s]+\.[^@\s]+$")
End Function
End Class
Quand supprimer les avertissements
Il est sûr de supprimer un avertissement de cette règle si les performances ne sont pas un problème.
Supprimer un avertissement
Si vous voulez supprimer une seule violation, ajoutez des directives de préprocesseur à votre fichier source pour désactiver et réactiver la règle.
#pragma warning disable CA1874
// The code that's violating the rule is on this line.
#pragma warning restore CA1874
Pour désactiver la règle sur un fichier, un dossier ou un projet, définissez sa gravité sur none dans le fichier de configuration.
[*.{cs,vb}]
dotnet_diagnostic.CA1874.severity = none
Pour plus d’informations, consultez Comment supprimer les avertissements d’analyse du code.