Bevezetés a StringBuilder használatához a C # -ben

A következő cikk, Mi az a StringBuilder a C # -ben, körvonalazza a C # StringBuilder-t. Mielőtt a StringBuilderről beszélne, először nézzük meg a változhatatlanság fogalmát, ha megismerkedünk a húrokkal, akkor valószínűleg tudnánk, hogy a húrok változhatatlan természetűek, azaz minden alkalommal, amikor új objektumot létrehoznak, és új memóriahelyet adnak hozzá, és így amikor adatok A változás megtörténik, a megváltozott adatokat új memóriahelyre kell helyezni, és az eredeti karakterláncot biztonságban kell tartani. Most nézzünk csak gondolkodni. Mi a haszna ennek a megközelítésnek? Nos, ha olyan hitelesítő adatokat állít be, mint például az adatbázis részletei, vagy más olyan hitelesítő adatokat, amelyek nem változnak meg az átmeneti idő alatt, akkor a String paranccsal használhatja azokat biztonságban. Most jön egy másik objektum, az úgynevezett StringBuilder, azaz változó jellegű, így memóriát takarít meg az Ön számára, lehetővé téve, hogy csak az aktuális memóriahely adatait módosítsa. Az ilyen dolgok akkor hasznosak, ha azt szeretné, hogy több hozzáfűzési művelettel rendelkezzen az utadon.

A StringBuilder meghatározása a C # -ben

A StringBuilder egy osztály, amely egy változó karakterkészletet képvisel, és a rendszer tárgya. Szöveg névtér. A StringBuilder jellegű dinamikus objektum, ezért a StringBuilder nem hoz létre új objektumot a memóriába, hanem dinamikusan kibővíti a szükséges memóriát a módosított vagy új karakterlánc beillesztéséhez. A karakterlánc-készítők nem tűnnek meggyőzőnek a többszálú környezetben, mivel azok következetlenséget okozhatnak, ha több szálat írnak, ha a többszálú koncepciót nem használják megfelelően.

A StringBuilder megértése

  1. Most eljön az a pont, amikor meg kell érteni a változtathatóság eredményeit, csak akkor kell választania a változtathatóságot, ha ugyanaz az adatkészlet dinamikusan bővül. Vegyünk egy példát ennek a forgatókönyvnek a megértéséhez.
  2. Ha olyan adatokat vesz HTML-űrlapból, amelyet egy üzleti logika alapján táblába kell tárolni, amely először érvényesíti az adatokat, akkor létrehozhat egy StringBuilder objektumot, és csatolhatja az összes adatmezőt, a Az adatbázis oszlopai és végül végrehajthat egy beszúrási lekérdezést, hogy mindegyiket az adatbázisba helyezzék, ennek a megközelítésnek az az előnye, hogy mindig nem kellett új memóriahelyet kiosztani. A C # ezt az egy memóriahelyet dinamikus bővítéssel kezeli az Ön számára.
  3. A C # -ben megadhatja a StringBuilder számkapacitását is.
    StringBuilder s = új StringBuilder (10);
    StringBuilder s = új StringBuilder („objektumérték”, 15) ;.
  4. A StringBuilder. A Length tulajdonság azt a karakterszámot jelzi, amelyet a StringBuilder objektum jelenleg tartalmaz. Ha karaktereket ad hozzá a StringBuilder objektumhoz, akkor annak hossza növekszik, amíg megegyezik a StringBuilder méretével.

Hogyan könnyíti meg a StringBuilder a C # -ben a munkát?

Vannak bizonyos módszerek a C # -ben, amelyek megkönnyítik a StringBuilder használatát. A StringBuilder osztály a következő módszereket kínálja a fejlesztő feladatának megkönnyítésére -

  • Függelék (String val) - arra szolgál, hogy az objektum karakterláncértékét az aktuális StringBuilder objektum végéhez csatolja.

Példa -

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

  • Függelék (formátum) - arra szolgál, hogy a bemeneti karakterláncot formázza a megadott formátumba, majd azt csatolja.

Példa -

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

Kedvesen hajtsa végre ezt, és elemezze az egyszerű append () módszerrel elvégzett eltérést.

  • Beszúrás (int index, karakterláncérték) - beszúrja a karakterláncot a megadott indexbe a StringBuilder objektumba.

Példa

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

Végrehajtás és látni az eredményt

  • Más módszerek is léteznek, és a fent említett módszerek sokféle változata, lásd ezeket:

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

Mit tehetsz a StringBuilderrel?

  • A StringBuildernek számos tulajdonsága, módszere és konstruktora van a kódolási problémák kezelésére, mint például a StringBuilder () konstruktort is láttuk, vannak olyan variánsok, mint a StringBuilder (String, Int32, Int32, Int32) - ez a StringBuilder osztály új példányát inicializálja a az említett részsáv és kapacitása.
  • Vannak olyan tulajdonságok, mint - hossz, kapacitás, maximális kapacitás.
  • Vannak olyan módszerek, mint - appendLine (), Equals (objektum), GetHashCode (), GetType (), Remove (int32, int32), Csere (char, char), toString ().

Mindegyik feladat a tipikus üzleti problémák egyszerű és kevesebb kódsorral történő kódolása.

A StringBuilder használata C # -ben?

  • A StringBuilder objektum inicializálása a StringBuilder (Int32, Int32) konstruktor meghívásával megnövelheti a StringBuilder példány hosszát és kapacitását, hogy meghaladja a MaxCapacity tulajdonság értékét. Elsősorban ez akkor fordulhat elő, ha meghívja az Atta (String) és az AttaFormat (String, Object) metódusokat kis vonóságok hozzáfűzésére.
  • Ha a hozzáadott karakterek száma miatt a StringBuilder objektum hossza meghaladja az aktuális kapacitását, új memóriát allokál, a Capacity tulajdonság értéke megkétszereződik, új karakterek kerülnek hozzáadásra a StringBuilder objektumhoz, és annak hossza módosul.
  • Miután elérte a maximális kapacitást, a StringBuilder objektum számára nem lehetséges további memóriakiosztás, és ha mindenesetre a maximális kapacitást meghaladó kiterjesztés történik, akkor valószínű, hogy a fent említett két hiba bármelyikét eldobja.

- ArgumentOutOfRangeException.
- OutOfMemoryException kivétel.

Előnyök

  1. Nincs több memóriahely, amellyel a C # gondoskodik.
  2. Az objektum dinamikus bővítése a kapacitásig.
  3. Átalakítható karakterlánccá és fordítva.

Miért kellene a StringBuilder-et használni a C # -ben?

  • Látható, hogy a string követi a concat műveleteket, és a StringBuilder követi a append műveletet, és úgy tűnik, hogy a függelék gyorsabb, mint a concat, mivel a concatnak új memóriahelyet kell kiosztania, amelyet a StringBuilder nem tehet.
  • Ha az adatok átmeneti jellegűek, azaz nem állandóak, és a hívások között eltérőek, akkor a StringBuilder használható, feltéve, hogy többszálú munka nélkül dolgozik, különben a szálbiztonság kérdés.

Miért van szükség a StringBuilderre a C # -ben?

Nos, ezt csak a fenti pontokban tárgyaltunk, és itt le lehet következtetni azokat a felhasználási eseteket, amelyekben ez hasznos lehet.

Következtetés

Ezért láttuk a különbséget a string és a StringBuilder között, mikor kell használni mik és milyen kihívások vagy kivételek jelentkezhetnek a StringBuilders használatakor.

Ajánlott cikkek

Ez egy útmutató a Mi az a StringBuilder C # -ben? Itt megvitattuk a Meghatározás, megértés, a StringBuilder használata a C # -ben előnyeit és példáit, Hogyan kell használni? Miért van rá szükség? és miért kellene használni? Megnézheti a többi javasolt cikket is, hogy többet megtudjon-

  1. StringBuffer vs StringBuilder
  2. C # ha nyilatkozat
  3. C # do-while hurok
  4. C # karakterlánc funkciók

Kategória: