Forum: PC-Programmierung Stringbearbeitung in C#


von Hansbär (Gast)


Lesenswert?

Wieso funktioniert folgendes nicht?

textbox.text[0] = '1' ???

textbox.text ist ja vom Typ string, was ja einer Zeichenkette 
entspricht. Wieso kann ich dann nicht einfach einzelne Felder 
modifizieren?

Ich habe in der Textbox eine 11bit Binärzahl ausgegeben und möchte die 
einzelnen Bits bei verschiedenen Events verändern.

Kann mir jemand helfen? Bin neu auf dem Gebiet.

von abc (Gast)


Lesenswert?

string test = "123";
test = "2" + test.Substring(1, test.Length-1);

oder auch

string test = "123";
char[] content = test.ToCharArray();
content[0] = '2';


unsafe Methoden lass ich mal weg, da
>> Bin neu auf dem Gebiet.

von HalfBit (Gast)


Lesenswert?

abc hat Dir die wichtigsten Methoden schon genannt.

Kürzer und recht anfängerfreundlich ist auch der StringBuilder:
1
var sb = new StringBuilder("Test123");
2
sb[0] = '1';
3
string s = sb.ToString();

von HalfBit (Gast)


Lesenswert?

Hansbär schrieb:
> textbox.text ist ja vom Typ string, was ja einer Zeichenkette
> entspricht. Wieso kann ich dann nicht einfach einzelne Felder
> modifizieren?

Ursache:

Ein String ist im .net Framework kein char[]-Array, sondern eine 
nichtvererbbare Klasse. Der Zugriff über char = mystring[i] ist eine 
Eigenschaft (nur get) und kein Array-Zugriff.

Idee:

Die CLR kann Strings als speziellen Typ optimieren und der Programmierer 
verpfuscht nicht die Zeichenketten.

von Stephan W. (stipo)


Lesenswert?


von Hansbär (Gast)


Lesenswert?

Vielen Dank für die ausführliche Hilfe. Ich bin das gar nicht mehr 
gewohnt hier im Forum ohne nörgeln so ne Antwort zu bekommen.

Daumen Hoch an alle Beteiligten !!!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.