Úvod k téme StringBuilder v jazyku C #

Nasledujúci článok, Čo je StringBuilder v C #, poskytuje prehľad pre StringBuilder v C #. Predtým, ako hovoríme o StringBuilder, najprv uvidíme pojem nemennosti, ak ste oboznámení s reťazcami, pravdepodobne by ste vedeli, že reťazce majú nemennú povahu, tj zakaždým, keď sa vytvorí nový objekt a získa sa nové umiestnenie v pamäti, a teda vždy, keď sa údaje Ak dôjde k zmene, zmenené údaje sa majú umiestniť na nové miesto v pamäti a zachovať pôvodný reťazec v bezpečí. Teraz sa trochu zamyslime. Aký je prípad použitia tohto prístupu? Ak nastavujete poverenia, ako sú podrobnosti databázy, ďalšie poverenia, ktoré sa v prechodnom čase nezmenia, môžete na ich zaistenie použiť reťazec String. Teraz prichádza iný druh objektu, takzvaný StringBuilder, tj nemenný charakter, a preto vám šetrí pamäť tým, že umožňuje upravovať údaje iba v aktuálnom umiestnení pamäte. Takéto veci sa hodia, keď hľadáte viacnásobné operácie s pridaním, ktoré vám bránia.

Definícia StringBuilder v C #

StringBuilder je trieda, ktorá predstavuje zameniteľnú množinu znakov a je objektom systému. Textový menný priestor. StringBuilder je dynamický objekt v prírode, a preto StringBuilder nevytvára v pamäti nový objekt, skôr dynamicky rozširuje požadovanú pamäť o začlenenie upraveného alebo nového reťazca. Tvorcovia reťazcov sa nezdajú byť presvedčiví v prostredí s viacerými vláknami, pretože ak sa koncept s viacerými vláknami nepoužije správne, môžu mať za následok nekonzistenciu údajov, keď sa prepisujú viacerými vláknami.

Pochopenie StringBuilder

  1. Teraz prichádza do úvahy miesto, kde je potrebné porozumieť výsledkom, ktoré môže viesť k premenlivosti. Mali by ste sa rozhodnúť použiť túto premenlivosť iba v prípade, ak sa rovnaká množina údajov bude dynamicky rozširovať.
  2. Ak beriete nejaké údaje z formulára HTML, ktorý sa má uložiť do tabuľky na základe nejakej obchodnej logiky, ktorá najprv overí údaje, v takom prípade môžete vytvoriť objekt StringBuilder a pripojiť všetky dátové polia v spojení s stĺpcoch databázy a konečne môže vykonať dotaz na vloženie, ktorý umiestni všetko do databázy, výhodou takéhoto prístupu je to, že sa nemalo alokovať stále nové miesto v pamäti. A C # bude riadiť toto jedno pamäťové miesto s dynamickým rozširovaním za vás.
  3. Môžete tiež určiť početnú kapacitu StringBuilder v C #.
    StringBuilder s = nový StringBuilder (10);
    StringBuilder s = new StringBuilder („hodnota objektu“, 15) ;.
  4. StringBuilder. Vlastnosť length označuje počet znakov, ktoré objekt StringBuilder aktuálne obsahuje. Ak do objektu StringBuilder pridáte znaky, jeho dĺžka sa bude zväčšovať, až kým sa nebude rovnať veľkosti StringBuilder.

Ako uľahčuje StringBuilder v jazyku C # prácu?

Existujú určité metódy uvedené v jazyku C #, čo uľahčuje prácu s programom StringBuilder. Trieda StringBuilder poskytuje nasledujúce metódy na uľahčenie úlohy vývojára -

  • Append (String val) - používa sa na pripojenie aktuálnej hodnoty reťazca na koniec aktuálneho objektu StringBuilder.

Príklad -

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

  • Pripojiť (Format) - slúži na formátovanie vstupného reťazca do určeného formátu a jeho následné pripojenie.

Príklad -

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

Láskavo to vykonajte a analyzujte odchýlky od toho, čo sa urobilo v jednoduchej metóde append ().

  • Insert (int index, value string) - vloží reťazec do zadaného indexu v objekte StringBuilder.

príklad

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

Vykonajte a pozrite si výsledok

  • Existujú aj iné metódy a mnoho variantov vyššie uvedených metód, pre tie pozri:

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

Čo môžete robiť s StringBuilder?

  • StringBuilder má veľa vlastností, metód a konštruktorov, aby sa postaral o problémy s kódovaním, ako sme videli konštruktéra StringBuilder (), existujú varianty ako StringBuilder (String, Int32, Int32, Int32) - to inicializuje novú inštanciu triedy StringBuilder z uvedený podreťazec a jeho kapacita.
  • Existujú vlastnosti ako - dĺžka, kapacita, maximálna kapacita.
  • Existujú metódy ako - appendLine (), Equals (objekt), GetHashCode (), GetType (), Remove (int32, int32), Replace (char, char), toString ().

Všetky tieto úlohy vytvárajú úlohu pri jednoduchom kódovaní typických obchodných problémov as menším počtom riadkov kódu.

Pracujete s programom StringBuilder v jazyku C #?

  • Okamžitie objektu StringBuilder volaním konštruktora StringBuilder (Int32, Int32) môže zvýšiť dĺžku a kapacitu inštancie StringBuilder nad hodnotu vlastnosti MaxCapacity. Primárne by sa to mohlo stať, keď zavoláte metódy Append (String) a AppendFormat (String, Object) na pripojenie malých reťazcov.
  • Ak počet pridaných znakov spôsobí, že dĺžka objektu StringBuilder presiahne jeho aktuálnu kapacitu, pridelí sa nová pamäť, hodnota vlastnosti Capacity sa zdvojnásobí, do objektu StringBuilder sa pridajú nové znaky a upraví sa jeho vlastnosť Length.
  • Po dosiahnutí maximálnej kapacity už nie je možné žiadne ďalšie pridelenie pamäte pre objekt StringBuilder, a ak sa v každom prípade uskutoční rozšírenie nad jeho maximálnu kapacitu, je pravdepodobné, že vyvolá ktorúkoľvek z dvoch uvedených chýb.

- ArgumentOutOfRangeException.
- Výnimka OutOfMemoryException.

výhody

  1. C # sa nestarať o viac miest v pamäti.
  2. Dynamické rozšírenie objektu do kapacity.
  3. Môže sa konvertovať na reťazec a naopak.

Prečo by sme mali používať StringBuilder v jazyku C #?

  • Je vidieť, že reťazec sleduje operácie concat a StringBuilder nasleduje operáciu append a pripojenie sa javí rýchlejšie ako concat, pretože concat musí prideliť nové miesto v pamäti, ktoré StringBuilder nemá robiť.
  • Ak sú údaje prechodné, tj nie sú trvalé a líšia sa medzi rôznymi hovormi, je možné použiť StringBuilder za predpokladu, že pracujete bez viacvláknových operácií, inak bude problémom bezpečnosť vlákien.

Prečo potrebujeme StringBuilder v jazyku C #?

Diskutovali sme o tom iba vo vyššie uvedených bodoch a je možné z toho vyvodiť prípady použitia, v ktorých sa to môže hodiť.

záver

Preto sme videli rozdiel medzi reťazcom a StringBuilder, kedy použiť čo a aké sú výzvy alebo výnimky, ktoré sa môžu objaviť pri práci s StringBuilders.

Odporúčané články

Toto bol návod na Čo je StringBuilder v jazyku C # ?. Tu sme diskutovali o definícii, porozumení, práci v StringBuilder v C # s výhodami a príkladmi, ako ich používať? Prečo to potrebujeme? a prečo by sme to mali používať? Viac informácií nájdete aj v ďalších navrhovaných článkoch.

  1. StringBuffer vs StringBuilder
  2. C # if Vyhlásenie
  3. Slučka C # do-while
  4. C # Reťazcové funkcie

Kategórie: