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.