Introducere în Ce este StringBuilder în C #

Următorul articol, Ce este StringBuilder în C # oferă o imagine pentru StringBuilder în C #. Înainte de a vorbi despre StringBuilder, să vedem mai întâi conceptul de imuabilitate, dacă cunoașteți șirurile, probabil că veți ști că șirurile au o natură imuabilă, adică de fiecare dată când este creat un obiect nou și că i se oferă o nouă locație de memorie și, prin urmare, ori de câte ori sunt date schimbarea se întâmplă, datele schimbate urmează să fie plasate în noua locație de memorie și să păstreze șirul original în siguranță. Acum, să ne gândim puțin. Care este cazul de utilizare a acestei abordări? Ei bine, dacă setați date de acreditare precum detaliile bazei de date, alte acreditări care nu vor fi modificate în timpul trecător, atunci puteți utiliza String pentru a le păstra în siguranță. Acum vine un alt tip de obiect, așa-numitul StringBuilder, adică mutabil în natură, deci economiește memoria dvs. permițându-vă să modificați datele doar în locația actuală a memoriei. Astfel de lucruri vin la îndemână atunci când căutați să aveți mai multe operațiuni de anexare pentru a vă veni în calea dvs.

Definiția StringBuilder în C #

StringBuilder este o clasă care reprezintă un set mutabil de caractere și este un obiect al sistemului. Spațiu de nume text. StringBuilder este un obiect dinamic în natură și, prin urmare, StringBuilder nu creează un obiect nou în memorie, ci extinde dinamic memoria necesară pentru a încorpora șirul modificat sau nou. Constructorii de șiruri nu par convingători într-un mediu multithreading, deoarece pot duce la inconsistența datelor atunci când sunt scrise de mai multe fire, dacă conceptul multithreading nu este utilizat corect.

Înțelegerea StringBuilder

  1. Acum vine punctul în care cineva poate înțelege rezultatele la care poate duce mutabilitatea, ar trebui să alegeți să utilizați mutabilitatea numai dacă același set de date se va extinde dinamic, Să luăm un exemplu pentru a înțelege acest scenariu.
  2. Dacă luați unele date dintr-un formular HTML care urmează să fie stocat într-un tabel bazat pe o logică de afaceri, care va valida mai întâi datele, în acest caz puteți crea un obiect StringBuilder și adăugați toate câmpurile de date, în asociere cu coloane de bază de date și în cele din urmă pot executa o interogare de introducere pentru a plasa toate acestea în baza de date, avantajul unei astfel de abordări este faptul că nu trebuia să fie alocată o nouă locație de memorie. Și C # va gestiona acea locație de memorie cu expansiune dinamică pentru tine.
  3. Puteți specifica, de asemenea, capacitatea numărului StringBuilder în C #.
    StringBuilder s = nou StringBuilder (10);
    StringBuilder s = nou StringBuilder („valoare obiect”, 15) ;.
  4. StringBuilder. Proprietatea lungime indică numărul de caractere pe care le conține în prezent obiectul StringBuilder. Dacă adăugați caractere la obiectul StringBuilder, lungimea acestuia crește până când este egală cu dimensiunea StringBuilder.

Cum face StringBuilder din C # să funcționeze atât de ușor?

Există anumite metode furnizate în C #, ceea ce facilitează lucrul cu StringBuilder. Clasa StringBuilder oferă următoarele metode pentru a facilita sarcina dezvoltatorului -

  • Add (val (String)) - este utilizat pentru a adăuga o valoare string a unui obiect la sfârșitul obiectului curent StringBuilder.

Exemplu -

StringBuilder a = new StringBuilder(“val”, 10);
a.append(“us”) when you do console.writeline(a), it will give you result “value”

  • Add (Format) - este utilizat pentru a format șirul de intrare în formatul specificat și ulterior adăugați-l.

Exemplu -

StringBuilder a = new StringBuilder(“val”, 10);
a.appendFormat(“(0:C)”, 10)

Vă rugăm să executați acest lucru și să analizați variația din ceea ce a fost făcut în metoda simplă append ().

  • Insert (index index, string string) - inserează șirul la indexul specificat în obiectul StringBuilder.

Exemplu

StringBuilder a = new StringBuilder(“val”, 10); a.insert(4, ”ue”)

Executați și vedeți rezultatul

  • Există, de asemenea, și alte metode și multe variante ale metodelor menționate mai sus, pentru acestea, consultați:

Link: https://docs.microsoft.com/en-us/dotnet/api/system.text.stringbuilder?view=netframework-4.8

Ce poți face cu StringBuilder?

  • StringBuilder are multe proprietăți, metode și constructori pentru a avea grijă de problemele de codificare, așa cum am văzut constructorul StringBuilder (), există variante precum StringBuilder (String, Int32, Int32, Int32) - aceasta va iniția o nouă instanță a clasei StringBuilder din menționat subcategorie și capacitatea sa.
  • Există proprietăți precum: lungime, capacitate, capacitate maximă.
  • Există metode precum: appendLine (), Equals (obiect), GetHashCode (), GetType (), Remove (int32, int32), Înlocuire (char, char), toString ().

Toate acestea fac o sarcină pentru a codifica problemele tipice de afaceri ușor și cu un număr mai mic de linii de cod.

Lucrați cu StringBuilder în C #?

  • Instantarea obiectului StringBuilder apelând constructorul StringBuilder (Int32, Int32) poate face ca lungimea și capacitatea instanței StringBuilder să crească peste valoarea proprietății MaxCapacity. În primul rând, acest lucru s-ar putea întâmpla atunci când apelați metodele Append (String) și AppendFormat (String, Object) pentru a adăuga șiruri mici.
  • Dacă numărul de caractere adăugate determină ca lungimea obiectului StringBuilder să depășească capacitatea sa actuală, noua memorie este alocată, valoarea proprietății Capacity este dublată, noi caractere sunt adăugate obiectului StringBuilder și proprietatea Length este ajustată.
  • Odată ce a fost atinsă capacitatea maximă, nici o alocare suplimentară a memoriei nu este posibilă pentru obiectul StringBuilder și, în orice caz, extinderea dincolo de capacitatea sa maximă se face, atunci probabil că aruncă oricare dintre cele două erori menționate.

- ArgumentOutOfRangeException.
- Excepție OutOfMemoryException.

avantaje

  1. Nu există mai multe locații de memorie care să fie îngrijite de C #.
  2. Extinderea obiectului dinamic până la capacitate.
  3. Poate fi convertită în String și invers.

De ce ar trebui să folosim StringBuilder în C #?

  • Se vede că șirul urmărește operațiunile concat și StringBuilder urmărește operațiunea apendice, iar anexa pare a fi mai rapidă decât concat, întrucât concat trebuie să aloce o nouă locație de memorie care nu trebuie făcută de StringBuilder.
  • Dacă datele sunt tranzitorii, adică non-permanente și vor varia între apeluri diferite, atunci StringBuilder poate fi utilizat, cu condiția să nu lucrați fără multitreading, altfel siguranța thread va fi o problemă.

De ce avem nevoie de StringBuilder în C #?

Ei bine, am discutat acest lucru în punctele de mai sus și se poate deduce aici cazurile de utilizare în care acest lucru poate fi util.

Concluzie

Prin urmare, am văzut diferența dintre string și StringBuilder, când să folosim care și care sunt provocările sau excepțiile care pot apărea în timp ce lucrează cu StringBuilders.

Articole recomandate

Acesta a fost un ghid pentru Ce este StringBuilder în C # ?. Aici am discutat Definiție, Înțelegere, Lucrări în StringBuilder în C # cu avantaje și exemple, Cum să utilizăm? De ce avem nevoie? și de ce ar trebui să-l folosim ?. Puteți parcurge și alte articole sugerate pentru a afla mai multe-

  1. StringBuffer vs StringBuilder
  2. C # dacă declarație
  3. C # bucla do-while
  4. C # Funcții cu șiruri