Partager via


DA0001 : Utilisez StringBuilder pour les concaténations

ID de la règle

DA0001

Catégorie

Utilisation du .NET Framework

Méthodes de profilage

Échantillonnage

Instrumentation

Message

Envisagez d'utiliser StringBuilder pour les concaténations de chaînes

Type de message

Avertissement

Cause

Les appels à System.String.Concat représentent une proportion significative des données de profilage.Utilisez la classe StringBuilder pour construire des chaînes à partir de plusieurs segments.

Description de la règle

Un objet String est immuable.Par conséquent, toute modification dans la chaîne crée un nouvel objet String et le garbage collection de l'original.Ce comportement est le même si vous appelez String.Concat explicitement ou utilisez les opérateurs de concaténation de chaînes tels que + ou + =..Les performances du programme peuvent diminuer si ces méthodes sont fréquemment appelées, notamment lorsque des caractères sont ajoutés à une chaîne dans une boucle serrée.

La classe StringBuilder est un objet mutable, et, contrairement à System.String, la plupart des méthodes sur StringBuilder qui modifient une instance de cette classe retournent une référence à cette même instance.Vous pouvez insérer des caractères ou ajouter du texte à une instance StringBuilder et supprimer ou remplacer des caractères dans l'instance sans avoir besoin d'allouer une nouvelle instance et de supprimer l'instance d'origine.

Comment examiner un avertissement

Double-cliquez sur le message dans la fenêtre Liste d'erreurs pour naviguer jusqu'à la Vue Informations relatives à la fonction des données de profil d'échantillonnage.Recherchez les sections du programme qui utilisent le plus la concaténation de chaînes.Utilisez la classe StringBuilder pour le traitement des chaînes complexes, notamment les opérations de concaténation des chaînes fréquentes.

Pour plus d'informations sur l'utilisation de chaînes, consultez la section String Operations de Chapter 5 - Improving Managed Code Performance dans la bibliothèque Microsoft Patterns and Practices.