Új hozzászólás Aktív témák

  • vlevi

    nagyúr

    válasz OddMan #6519 üzenetére

    C-ben a string az valóban egy karaktertömb volt még, ott lehetett ilyenekkel játszani.
    De a C#-ban a string egy objektum, aminek a kezelését elég komolyan eldugja előled a fordító. Ahogy előttem is írták, egy string sosem változik meg, legfeljebb cserélődik.

    ha pl. leírod ezt
    string s1="abc";
    s1="def";

    akkor nem azt fog történni, amire számítanál, hogy az s1-nek a három karaktere lecserélődik három másik karakterre. Ehelyett az s1 megy a levesbe, létrejön egy új string objektum, def tartalommal, és az s1 változó innentől kezdve erre az újonnan létrejött string objektumra mutat.

    A stringbuilder, amit adam014 említett, az annyiban más, hogy nem gyárt mindíg új string változót, csak belül gyűjti, mit variál a program a betűkkel, és csak végén, amikor a string értékére szükség van, akkor állítja elő.

Új hozzászólás Aktív témák