Ich denke, es muss etwas tun, mit String als Referenztyp, aber ich verstehe nicht, warum einfach string.Replace("X","Y")
nicht funktioniert?Warum string.Replace ("X", "Y") funktioniert nur, wenn es einer neuen Zeichenfolge zugewiesen wird?
Warum muss ich string A = stringB.Replace("X","Y")
tun? Ich dachte, es ist nur eine Methode, die für eine bestimmte Instanz ausgeführt werden muss.
EDIT: Vielen Dank bis jetzt. Ich erweitere meine Frage: Warum funktioniert b+="FFF"
funktioniert aber b.Replace
nicht?
Der Grund dafür ist, weil Zeichenfolgen unveränderlich sind, d. H. Sie können nicht geändert werden - Siehe @Kevin Antwort. Für mich ist es ein Fehler auf Microsofts Seite, da die Benennung der Methode irreführend ist. – James
Was meinst du mit einem "String".Ersetzen ist eine gemeinsame Funktion "und" es ist kein Operator auf dem aktuellen Objekt "? –
@ James, Strings sind unveränderlich, aber die Variablen nicht. Das OP scheint zu wissen, warum der Wert der Variablen nicht ist geändert, aber es ist die schlechte Benennungskonvention, die das Problem verursacht, nicht die Unveränderlichkeit der Strings. @Mark, schlechte Formulierung meinerseits.Ich wollte sagen, es verhält sich wie eine gemeinsame Funktion, nicht, dass es eine ist. Und wie eine Referenz Typ, es wirkt auf den referenzierten String, nicht auf den Verweis –