Autor Beitrag
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 01.09.18 17:52 
- Nachträglich durch die Entwickler-Ecke gelöscht -


Zuletzt bearbeitet von Frühlingsrolle am So 02.09.18 15:37, insgesamt 1-mal bearbeitet
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4241
Erhaltene Danke: 898

Win10
C#, C++ (VS 2015/17)
BeitragVerfasst: So 02.09.18 09:47 
Beim StringBuilder gibst du ja die Größe (256 Bytes) schon im Konstruktor mit, während du bei der (unteren) String-Variante ja noch selber Speicher für den String reservieren müßtest, z.B. string _name = new string(' '256);
Es gäbe auch noch die Variante mittels eines byte- oder (für WideChar) char-Arrays (wie man es ja auch direkt in C bzw. C++ macht).

Ich persönlich finde die StringBuilder-Variante besser, da sie sich auch bei anderen C#-Projekten durchgesetzt hat (daß man nachher dann noch explizit (bzw. implizit) ToString() aufrufen muß, um an den eigentlichen String-Inhalt zu gelangen, sehe ich sogar eher positiv).

PS: Das "+ 1" bei _name.Capacity + 1 ist aber auch fehlerhaft, da du dann ja in deinem Beispiel 257 als Länge übergeben würdest (die abschließende '\0' muß ja bei der Puffergröße mitberechnet werden, d.h. bei einem Puffer von 256 Bytes kann der zurückgegebene String max. 255 Bytes groß sein).
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 02.09.18 14:00 
- Nachträglich durch die Entwickler-Ecke gelöscht -