CA1830 : Préférer les surcharges de méthode Append et Insert fortement typées sur StringBuilder

Propriété Valeur
Identificateur de la règle CA1830
Titre Préférer les surcharges de méthode Append et Insert fortement typées sur StringBuilder
Catégorie Performance
Le correctif a un effet disruptif ou non disruptif Sans rupture
Activé par défaut dans .NET 10 À titre de suggestion
Langues applicables C# et Visual Basic

Cause

La méthode StringBuilderAppend ou Insert a été appelée avec un argument qui est le résultat de l'appel de ToString sur un type pour lequel la méthode Append ou Insert a une surcharge dédiée.

Description de la règle

Append et Insert fournissent des surcharges de fonction pour plusieurs types en plus de String. Si possible, préférez les surcharges fortement typées plutôt que l’utilisation de ToString() et la surcharge basée sur des chaînes.

Comment corriger les violations

Supprimez le ToString() inutile de l'invocation.

using System.Text;

class C
{
    int _value;

    // Violation
    public void Log(StringBuilder destination)
    {
        destination.Append("Value: ").Append(_value.ToString()).AppendLine();
    }

    // Fixed
    public void Log(StringBuilder destination)
    {
        destination.Append("Value: ").Append(_value).AppendLine();
    }
}

Quand supprimer les avertissements

Vous pouvez sans risque ignorer une violation de cette règle si vous ne vous souciez pas de l’impact des performances dû aux allocations de chaînes inutiles.

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 CA1830
// The code that's violating the rule is on this line.
#pragma warning restore CA1830

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.CA1830.severity = none

Pour plus d’informations, consultez Comment supprimer les avertissements de l’analyse de code.

Voir aussi