Partager via


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é par défaut dans .NET 8 À 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.