C# Language
Unveränderlichkeit
Suche…
System.String-Klasse
In C # (und .NET) wird eine Zeichenfolge durch die Klasse System.String dargestellt. Das string
Schlüsselwort ist ein Alias für diese Klasse.
Die System.String-Klasse ist unveränderlich, dh ihr Zustand kann nach ihrer Erstellung nicht mehr geändert werden.
Alle Vorgänge, die Sie an einer Zeichenfolge ausführen, wie z. B. Unterzeichenfolge, Entfernen, Ersetzen, Verkettung mit dem Operator +
, usw., erstellen eine neue Zeichenfolge und geben diese zurück.
Siehe folgendes Programm zur Demonstration -
string str = "mystring";
string newString = str.Substring(3);
Console.WriteLine(newString);
Console.WriteLine(str);
Dadurch werden string
und mystring
.
Saiten und Unveränderlichkeit
Unveränderbare Typen sind Typen, die bei einer Änderung eine neue Version des Objekts im Speicher erstellen, anstatt das vorhandene Objekt im Speicher zu ändern. Das einfachste Beispiel hierfür ist der integrierte string
.
Mit folgendem Code wird "world" an das Wort "Hello" angehängt.
string myString = "hello";
myString += " world";
Was in diesem Fall im Speicher geschieht, ist, dass ein neues Objekt erstellt wird, wenn Sie an die string
in der zweiten Zeile anhängen. Wenn Sie dies als Teil einer großen Schleife ausführen, besteht die Möglichkeit, dass dies zu Leistungsproblemen in Ihrer Anwendung führt.
Das veränderbare Äquivalent für einen string
ist ein StringBuilder
Nehmen Sie den folgenden Code
StringBuilder myStringBuilder = new StringBuilder("hello");
myStringBuilder.append(" world");
Wenn Sie dies ausführen, ändern Sie das StringBuilder
Objekt selbst im Arbeitsspeicher.