Informations
Le sujet que vous avez demandé est indiqué ci-dessous. Toutefois, ce sujet ne figure pas dans la bibliothèque.
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

StringBuilder, classe

Mise à jour : novembre 2007

Représente une chaîne de caractères mutable. Cette classe ne peut pas être héritée.

Espace de noms :  System.Text
Assembly :  mscorlib (dans mscorlib.dll)

[SerializableAttribute]
[ComVisibleAttribute(true)]
public sealed class StringBuilder : ISerializable
/** @attribute SerializableAttribute */ 
/** @attribute ComVisibleAttribute(true) */
public final class StringBuilder implements ISerializable
public final class StringBuilder implements ISerializable

Cette classe représente un objet qui ressemble à une chaîne et dont la valeur est une séquence de caractères mutable. Cette valeur est dite mutable parce qu'elle peut être modifiée après sa création par ajout, suppression, remplacement ou insertion de caractères. Pour comparer, consultez la classe String.

La plupart des méthodes qui modifient une instance de cette classe retournent une référence à cette même instance. Dans la mesure où une référence à l'instance est retournée, vous pouvez appeler une méthode ou une propriété sur cette référence. Cela peut s'avérer pratique si vous voulez écrire une seule instruction qui enchaîne des opérations successives.

La capacité de StringBuilder est le nombre maximal de caractères que l'instance peut stocker à un moment donné ; ce nombre est supérieur ou égal à la longueur de la chaîne qui représente la valeur de l'instance. Il est possible d'augmenter ou de diminuer la capacité à l'aide de la propriété Capacity ou de la méthode EnsureCapacity, mais elle ne peut pas être inférieure à la valeur de la propriété Length.

Les valeurs par défaut spécifiques à l'implémentation sont utilisées si aucune capacité ou capacité maximale n'est spécifiée lors de l'initialisation d'une instance de StringBuilder.

Considérations sur les performances

Les méthodes Concat et AppendFormat concatènent toutes deux les nouvelles données en un objet String ou StringBuilder existant. Une concaténation d'objet String crée toujours un nouvel objet à partir de la chaîne existante et des nouvelles données. Un objet StringBuilder gère une mémoire tampon qui contient la concaténation des nouvelles données. Les nouvelles données sont ajoutées à la fin de la mémoire tampon, si l'espace nécessaire est disponible ; sinon, une nouvelle mémoire tampon, plus grande, est allouée, les données de la mémoire tampon d'origine sont copiées dans la nouvelle mémoire tampon, et les nouvelles données sont ajoutées à la nouvelle mémoire tampon.

La performance d'une opération de concaténation pour un objet String ou StringBuilder dépend de la fréquence à laquelle une allocation de mémoire a lieu. Une opération de concaténation String alloue toujours la mémoire, alors qu'une opération de concaténation StringBuilder alloue seulement la mémoire si la mémoire tampon de l'objet StringBuilder est trop petite pour contenir les nouvelles données. Par conséquent, la classe String est préférable pour une opération de concaténation si un nombre fixe d'objets String est concaténé. Dans ce cas, les opérations de concaténation individuelles peuvent même être combinées en une seule opération par le compilateur. Un objet StringBuilder est préférable pour une opération de concaténation si un nombre arbitraire de chaînes est concaténé; par exemple, si une boucle concatène un nombre aléatoire de chaînes d'entrées d'utilisateur.

Remarques à l'attention des implémenteurs :

La capacité par défaut pour cette implémentation est 16 et la capacité maximale par défaut est Int32.MaxValue.

Si nécessaire, StringBuilder peut allouer plus de mémoire pour stocker les caractères lorsque la valeur d'une instance est augmentée et la capacité est modifiée en conséquence. La quantité de mémoire allouée est spécifique à l'implémentation et le système lève ArgumentOutOfRangeException si la quantité de mémoire requise est supérieure à la capacité maximale.

Par exemple, les méthodes Append, AppendFormat, EnsureCapacity, Insert et Replace peuvent augmenter la valeur d'une instance.

Les caractères dans la valeur de StringBuilder sont accessibles à l'aide de la propriété Chars. Les positions d'index commencent à zéro.

Remarque sur la plateforme Windows Mobile pour Pocket PC, Windows Mobile pour Smartphone, Windows CE :

L'ajout continuel de chaînes aux objets StringBuilder peut entraîner la fragmentation de l'espace d'adressage virtuel. Sous Windows CE, ce problème peut apparaître après l'ajout de chaînes de 3 Mo environ, en raison des limitations d'espace d'adressage virtuel pour chaque processus. Pour contourner ce problème, définissez la propriété MaxCapacity. Ou bien, ouvrez un MemoryStream et écrivez les chaînes dans le flux de mémoire au lieu d'utiliser la classe StringBuilder.

L'exemple de code suivant montre comment appeler la plupart des méthodes définies par la classe StringBuilder.

using System;
using System.Text;

public sealed class App 
{
    static void Main() 
    {
        // Create a StringBuilder that expects to hold 50 characters.
        // Initialize the StringBuilder with "ABC".
        StringBuilder sb = new StringBuilder("ABC", 50);

        // Append three characters (D, E, and F) to the end of the StringBuilder.
        sb.Append(new char[] { 'D', 'E', 'F' });

        // Append a format string to the end of the StringBuilder.
        sb.AppendFormat("GHI{0}{1}", 'J', 'k');

        // Display the number of characters in the StringBuilder and its string.
        Console.WriteLine("{0} chars: {1}", sb.Length, sb.ToString());

        // Insert a string at the beginning of the StringBuilder.
        sb.Insert(0, "Alphabet: ");

        // Replace all lowercase k's with uppercase K's.
        sb.Replace('k', 'K');

        // Display the number of characters in the StringBuilder and its string.
        Console.WriteLine("{0} chars: {1}", sb.Length, sb.ToString());
    }
}

// This code produces the following output.
//
// 11 chars: ABCDEFGHIJk
// 21 chars: Alphabet: ABCDEFGHIJK


System.Object
  System.Text.StringBuilder
Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professionnel Édition x64, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile pour Smartphone, Windows Mobile pour Pocket PC, Xbox 360

Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

.NET Framework

Pris en charge dans : 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Pris en charge dans : 3.5, 2.0, 1.0

XNA Framework

Pris en charge dans : 2.0, 1.0
Cela vous a-t-il été utile ?
(1500 caractères restants)
Merci pour vos suggestions.

Ajouts de la communauté

Afficher:
© 2014 Microsoft. Tous droits réservés.