Uvod v to, kaj je StringBuilder v C #

Naslednji članek Kaj je StringBuilder v C # ponuja oris za StringBuilder v C #. Preden govorimo o StringBuilder, si najprej oglejmo koncept nespremenljivosti, če bi bili seznanjeni z strunami, potem bi verjetno vedeli, da imajo strune nespremenljivo naravo, tj. Vsakič, ko se ustvari nov objekt in se mu zagotovi nova lokacija pomnilnika in s tem kadar koli podatki sprememba se zgodi, spremenjene podatke je treba namestiti na novo pomnilniško mesto in ohraniti originalni niz. Zdaj pa malo razmislimo. Kakšen je uporabni primer tega pristopa? No, če nastavite poverilnice, kot so podrobnosti o zbirki podatkov, druge poverilnice, ki se v prehodnem času ne bodo spremenile, potem lahko za to uporabite String. Zdaj je na vrsti še ena vrsta predmeta, tako imenovani StringBuilder, ki se lahko spreminja po naravi, zato vam prihrani pomnilnik in vam omogoča spreminjanje podatkov samo na trenutnem pomnilniškem mestu. Takšne stvari pridejo v poštev, ko želite, da se vam pripeti več operacij dodajanja.

Definicija StringBuilder v C #

StringBuilder je razred, ki predstavlja spremenljiv nabor znakov in je predmet sistema. Besedilni imenik besedila. StringBuilder je naraven dinamičen predmet, zato StringBuilder ne ustvari novega predmeta v pomnilniku, temveč dinamično razširi potreben pomnilnik, da vključi spremenjen ali nov niz. Gradniki strun se ne zdijo prepričljivi v večnamenskem okolju, saj lahko povzročijo nedoslednost podatkov, če jih napišejo več niti, če koncept večreznega branja ne uporablja pravilno.

Razumevanje StringBuilderja

  1. Zdaj je treba razumeti rezultate, ki jih lahko povzroči nespremenljivost, zato se lahko odločite za uporabo spremenljivosti le, če se bo isti nabor podatkov dinamično razširil. Vzemimo primer za razumevanje tega scenarija.
  2. Če vzamete nekaj podatkov iz obrazca HTML, ki ga je treba shraniti v tabelo na podlagi neke poslovne logike, ki bo najprej potrdila podatke, v tem primeru lahko ustvarite objekt StringBuilder in dodate vsa podatkovna polja v povezavi z stolpcev baze podatkov in končno lahko izvede poizvedbo o vstavitvi, da bi vse to postavili v bazo podatkov, prednost takšnega pristopa je, da ves čas ni bilo treba dodeliti nove pomnilniške lokacije. In C # bo upravljal to eno pomnilniško mesto z dinamično razširitvijo za vas.
  3. Prav tako lahko določite število zmogljivosti StringBuilder v C #.
    StringBuilder s = nov StringBuilder (10);
    StringBuilder s = nov StringBuilder ("vrednost predmeta", 15) ;.
  4. The StringBuilder. Lastnost Length kaže število znakov, ki jih trenutno vsebuje objekt StringBuilder. Če v predmet StringBuilder dodate znake, se njegova dolžina poveča, dokler ni enaka velikosti StringBuilderja.

Kako StringBuilder v C # olajša delo?

V C # obstajajo nekatere metode, ki olajšajo delo s StringBuilderjem. Razred StringBuilder ponuja naslednje načine, da olajša nalogo razvijalca -

  • Dodati (String val) - se uporablja za dodajanje vrednosti niza predmeta na konec trenutnega predmeta StringBuilder.

Primer -

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

  • Dodati (Format) - se uporablja za oblikovanje vhodnega niza v določeno obliko in ga nato doda.

Primer -

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

Vljudno izvedite to in analizirajte odstopanje od tega, kar je bilo storjeno v preprosti dodatek ().

  • Vstavi (int indeks, vrednost niza) - vstavi niz v podanem indeksu v StringBuilder objekt.

Primer

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

Izvedite in si oglejte rezultat

  • Obstajajo tudi druge metode in številne različice zgoraj omenjenih metod, za tiste, ki se nanašajo na:

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

Kaj lahko storite z StringBuilder?

  • StringBuilder ima veliko lastnosti, metod in konstruktorjev, ki skrbijo za težave s kodiranjem, kot smo videli konstruktor StringBuilder (), obstajajo različice, kot je StringBuilder (String, Int32, Int32, Int32) - to bo inicializiralo nov primerek razreda StringBuilder iz omenjena podvrsta in njena zmogljivost.
  • Obstajajo lastnosti, kot so - dolžina, zmogljivost, največja zmogljivost.
  • Obstajajo metode, kot so - appendLine (), Equals (objekt), GetHashCode (), GetType (), Remove (int32, int32), Replace (char, char), toString ().

Vsi naredijo nalogo za kodiranje tipičnih poslovnih težav enostavno in z manjšim številom vrstic kode.

Delo z StringBuilder v C #?

  • V trenutku, ko objekt StringBuilder pokličete s pozivom konstruktorja StringBuilder (Int32, Int32), lahko dolžina in zmogljivost primerka StringBuilder narasteta nad vrednostjo lastnosti MaxCapacity. To se v prvi vrsti lahko zgodi, če pokličete dodatek (niz) in AppendFormat (niz, objekt) za dodajanje majhnih nizov.
  • Če število dodanih znakov povzroči, da dolžina predmeta StringBuilder presega njegovo trenutno zmogljivost, se dodeli nov pomnilnik, vrednost lastnosti Capacity se podvoji, novi znaki se dodajo v objekt StringBuilder in prilagodi njegova lastnost Length.
  • Ko je dosežena največja zmogljivost, nadaljnja dodelitev pomnilnika za objekt StringBuilder ni mogoča, in če se v vsakem primeru izvede širitev, ki presega največjo zmogljivost, potem verjetno vrže katero od dveh omenjenih napak.

- ArgumentOutOfRangeException.
- Izjema OutOfMemoryException.

Prednosti

  1. Ni več pomnilniških mest, ki bi jih skrbel C #.
  2. Dinamična razširitev predmeta do zmogljivosti.
  3. Lahko se pretvori v String in obratno.

Zakaj bi morali uporabljati StringBuilder v C #?

  • Videno je, da niz sledi operacijam concat, StringBuilder pa sledi operaciji dodajanja in zdi se, da je dodatek hitrejši kot concat, saj concat mora dodeliti novo pomnilniško mesto, ki ga StringBuilder ne sme storiti.
  • Če so podatki prehodni, tj nestalni in se med različnimi klici razlikujejo, potem je mogoče uporabiti StringBuilder, če delate brez večreznega branja, sicer varnost navojev ne bo težava.

Zakaj potrebujemo StringBuilder v C #?

No, o tem smo razpravljali samo v zgornjih točkah in tukaj lahko sklepamo na primere uporabe, kjer je to lahko koristno.

Zaključek

Zato smo videli razliko med string in StringBuilder, kdaj uporabiti, kaj in kaj so izzivi ali izjeme, ki se lahko pojavijo med delom z StringBuilders.

Priporočeni članki

To je vodilo o tem, kaj je StringBuilder v C # ?. Tu smo razpravljali o definiciji, razumevanju, delu v StringBuilder v C # s prednostmi in primeri, kako uporabiti? Zakaj ga potrebujemo? in Zakaj bi ga uporabljali? Obiščite lahko tudi druge naše predlagane članke, če želite izvedeti več -

  1. StringBuffer proti StringBuilder
  2. C # če Izjava
  3. C # do-while zanka
  4. Funkcije niza C #