Was sind die Eigenschaften der Klasse string in C#?
sobes.tech KI
Antwort von AI
Die Klasse string in C# besitzt die folgenden Schlüsselmerkmale:
-
Unveränderlichkeit (Immutability): Nach der Erstellung eines
string-Objekts kann dessen Inhalt nicht mehr geändert werden. Jede Operation, die wie eine Änderung der Zeichenkette aussieht (z.B. Verkettung), erstellt tatsächlich ein neuesstring-Objekt.string s1 = "Hello"; string s2 = s1 + " World"; // Es wird ein neues `string`-Objekt für "Hello World" erstellt // Das Objekt s1 enthält immer noch "Hello"Dies macht Strings sicher für die Verwendung in Multithread-Umgebungen und vereinfacht ihre Nutzung als Schlüssel in Sammlungen wie
Dictionary. -
Referenztyp (Reference Type): Obwohl Strings sich oft wie Werttypen verhalten, dank Operatorüberladung und Vergleich nach Wert, ist
stringein Referenztyp.string a = "test"; string b = a; // b verweist auf dasselbe Objekt "test" im Heap string c = "test"; // Wenn der String "test" bereits im String-Pool ist, verweist c ebenfalls darauf -
Überladung des Operators
+: Der Operator+ist für die Verkettung von Strings überladen.string firstName = "John"; string lastName = "Doe"; string fullName = firstName + " " + lastName; // String-VerkettungMehrfache Verkettung mit
+kann ineffizient sein, da temporäre Objekte erstellt werden. Für eine effizientere Verkettung vieler Strings wird die Verwendung vonStringBuilderempfohlen. -
String-Pool (String Interning): Die .NET-Laufzeitumgebung verfügt über einen Mechanismus namens String-Pool, der einzigartige String-Literale speichert, die im Code definiert sind. Wenn ein String-Literal erstellt wird, prüft CLR, ob dieser String bereits im Pool existiert. Falls ja, wird eine Referenz auf das bestehende Objekt zurückgegeben, anstatt ein neues zu erstellen.
string str1 = "hello"; // "hello" wird zum Pool hinzugefügt (oder ist bereits vorhanden) string str2 = "hello"; // str2 verweist auf dasselbe Objekt im Pool wie str1 Console.WriteLine(ReferenceEquals(str1, str2)); // Gibt True ausDies ist eine Speicheroptimierung.
-
Umfangreiche Methoden: Die
string-Klasse bietet eine Vielzahl von Methoden zur String-Manipulation, einschließlich Suche, Ersetzung, Formatierung, Groß-/Kleinschreibung und vieles mehr.string original = " Hello, World! "; string trimmed = original.Trim(); // Entfernt Leerzeichen an den Rändern string upper = original.ToUpper(); // In Großbuchstaben umwandeln bool contains = original.Contains("World"); // Überprüfung, ob eine Teilzeichenkette enthalten ist -
Implementierung von
IEnumerable<char>: Ein String ist im Wesentlichen eine Sammlung von Zeichen und implementiert die SchnittstelleIEnumerable<char>, was das Durchlaufen der Zeichen und die Verwendung von LINQ ermöglicht.string text = "C#"; foreach (char c in text) { Console.WriteLine(c); }