L'article suivant, Qu'est-ce que StringBuilder en C#, fournit un aperçu de StringBuilder en C#. Avant de parler de StringBuilder, voyons d'abord le concept d'immuabilité. Si vous connaissez les chaînes, vous saurez probablement que les chaînes ont une nature immuable, c'est-à-dire chaque fois qu'un nouvel objet est créé et qu'un nouvel emplacement mémoire lui est fourni et donc à chaque fois. un changement de données se produit, les données modifiées doivent être placées dans un nouvel emplacement mémoire et conserver la chaîne d'origine en sécurité. Maintenant, n’y réfléchissons pas. Quel est le cas d’usage de cette approche ? Eh bien, si vous définissez des informations d'identification telles que les détails de la base de données, d'autres informations d'identification qui ne seront pas modifiées pendant le temps transitoire, vous pouvez utiliser String pour cela afin de les protéger. Il existe maintenant un autre type d'objet, appelé StringBuilder, c'est-à-dire de nature mutable, qui vous permet donc d'économiser de la mémoire en vous permettant de modifier les données dans l'emplacement mémoire actuel uniquement. De telles choses sont utiles lorsque vous cherchez à avoir plusieurs opérations d'ajout à votre disposition.
StringBuilder est une classe qui représente un jeu de caractères mutable et c'est un objet du système. Espace de noms de texte. StringBuilder est un objet dynamique par nature et, par conséquent, StringBuilder ne crée pas de nouvel objet dans la mémoire, mais étend dynamiquement la mémoire requise pour incorporer la chaîne modifiée ou nouvelle. Les générateurs de chaînes ne semblent pas convaincants dans un environnement multithread car ils peuvent entraîner une incohérence des données lorsqu'ils sont écrasés par plusieurs threads si le concept multithreading n'est pas utilisé correctement.
1. Maintenant vient le moment où l'on doit comprendre les résultats auxquels la mutabilité peut conduire, vous devez choisir de n'utiliser la mutabilité que si le même ensemble de données va se développer dynamiquement. Prenons un exemple pour comprendre ce scénario.
2. Si vous récupérez des données d'un formulaire HTML qui doivent être stockées dans un tableau basé sur une logique métier, qui validera d'abord les données, dans ce cas, vous pouvez créer un objet StringBuilder et ajouter tous les champs de données, en association avec les colonnes de la base de données et enfin peut exécuter une requête d'insertion pour placer tout cela dans la base de données, l'avantage d'une telle approche est que tout le temps, un nouvel emplacement mémoire n'était pas censé être alloué. Et C# gérera cet emplacement mémoire avec une expansion dynamique pour vous.
3. Vous pouvez également spécifier la capacité numérique de StringBuilder en C#.
StringBuilder s=new StringBuilder(10);
StringBuilder s=new StringBuilder("object value", 15);
4. La propriété StringBuilder.length indique le nombre de caractères que l'objet StringBuilder contient actuellement. Si vous ajoutez des caractères à l'objet StringBuilder, sa longueur augmente jusqu'à ce qu'elle soit égale à la taille de StringBuilder.
Certaines méthodes sont fournies en C#, ce qui facilite le travail avec StringBuilder. La classe StringBuilder fournit les méthodes suivantes pour faciliter la tâche du développeur –
Exemple –
classStringBuilder a = new StringBuilder("val",10); a.append("us")
Quand vous faites console.writeline(a), cela vous donnera le résultat « valeur »
Exemple –
StringBuilder a = new StringBuilder("val",10); a.appendFormat("{0:C}",10)
Veuillez exécuter ceci et analyser la variation par rapport à ce qui a été fait dans la méthode simple append().
Exemple
StringBuilder a = new StringBuilder("val",10); a.insert(4,"ue")
Exécuter et voir le résultat
Ceux-ci constituent tous une tâche permettant de coder facilement et avec moins de lignes de code des problèmes commerciaux typiques.
ArgumentOutOfRangeException.
OutOfMemoryException.
Eh bien, nous en avons discuté uniquement dans les points ci-dessus et on peut en déduire ici les cas d'utilisation où cela peut s'avérer utile.
Nous avons donc vu la différence entre string et StringBuilder, quand utiliser quoi et quels sont les défis ou exceptions qui peuvent apparaître lorsque vous travaillez avec StringBuilder.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!