CA1514 : Éviter l’argument de longueur redondante
Propriété | Value |
---|---|
Identificateur de la règle | CA1514 |
Titre | Éviter l’argument de longueur redondante |
Catégorie | Maintenabilité |
Le correctif est cassant ou non cassant | Sans rupture |
Activée par défaut dans .NET 9 | À titre de suggestion |
Cause
Un argument de longueur redondant est passé à String.Substring, Span<T>.Slice, ReadOnlySpan<T>.Slice ou Memory<T>.Slice lors du découpage à la fin d’une chaîne ou d’une mémoire tampon.
Description de la règle
Un argument de longueur calculé explicitement peut être sujet à des erreurs et n’est pas nécessaire lorsque vous découpez à la fin une chaîne ou une mémoire tampon.
Le code qui omet l’argument de longueur est plus lisible et gérable.
Comment corriger les violations
Supprimez l’argument de longueur.
Exemple
L’extrait de code suivant montre une violation de CA1514 :
string message = "Hello World!";
string world = message.Substring(6, message.Length - 6); // "World!"
Dim message As String = "Hello World!"
Dim world As String = message.Substring(6, message.Length - 6) ' "World!"
L’extrait de code suivant corrige la violation :
string message = "Hello World!";
string world = message.Substring(6); // "World!"
Dim message As String = "Hello World!"
Dim world As String = message.Substring(6) ' "World!"
Quand supprimer les avertissements
Il est sûr de supprimer une violation de cette règle si vous n’êtes pas préoccupé par la maintenance de votre code.
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 CA1514
// The code that's violating the rule is on this line.
#pragma warning restore CA1514
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.CA1514.severity = none
Pour plus d’informations, consultez Comment supprimer les avertissements de l’analyse de code.