Freigeben über


string (C#-Referenz)

Der string-Typ stellt eine Sequenz aus null oder mehr Unicode-Zeichen dar. Der string-Typ ist ein Alias für String in .NET Framework.

string ist zwar ein Verweistyp, aber die Gleichheitsoperatoren (== und !=) sind so definiert, dass sie die Werte von string-Objekten und nicht von Verweisen vergleichen. Tests für die Übereinstimmung von Zeichenfolgen lassen sich auf diese Weise intuitiver gestalten. Beispiele:

string a = "hello";
string b = "h";
// Append to contents of 'b'
b += "ello";
Console.WriteLine(a == b);
Console.WriteLine((object)a == (object)b);

Hiermit wird "True" und dann "False" angezeigt, da der Inhalt der Zeichenfolgen äquivalent ist, aber a und b nicht auf dieselbe Zeichenfolgeninstanz verweisen.

Durch den Operator "+" werden Zeichenfolgen verkettet:

string a = "good " + "morning";

Hiermit wird ein Zeichenfolgenobjekt erstellt, das "good morning" enthält.

Zeichenfolgen sind unveränderlich, d. h. der Inhalt eines Zeichenfolgenobjekts kann nicht mehr geändert werden, nachdem das Objekt erstellt wurde, auch wenn die Syntax etwas anderes vermuten lässt. Wenn Sie z. B. den folgenden Code schreiben, erstellt der Compiler für die neue Zeichenabfolge ein neues Zeichenfolgenobjekt, und das neue Objekt wird "b" zugewiesen. Die Zeichenfolge "h" ist in diesem Fall für Garbage Collection geeignet.

string b = "h";
b += "ello";

Mit dem Operator [] kann auf einzelne Zeichen eines string mit Schreibschutz zugegriffen werden:

string str = "test";
char x = str[2];  // x = 's';

Zeichenfolgenliterale sind vom string-Typ und können in zwei Formaten geschrieben werden: in Anführungszeichen oder mit vorangestelltem @-Zeichen. Bei der ersten Möglichkeit werden Literale in doppelte Anführungszeichen (") eingeschlossen:

"good morning"  // a string literal

Zeichenfolgenliterale können jedes Zeichenliteral enthalten. Escapesequenzen werden eingeschlossen. Im folgenden Beispiel wird die Escapesequenz \\ für umgekehrte Schrägstriche verwendet, \u0066 wird für den Buchstaben f verwendet und \n für Zeilenumbrüche.

string a = "\\\u0066\n";
Console.WriteLine(a);

Tipp

Der Escapecode \udddd stellt das Unicode-Zeichen U+dddd dar (wobei dddd für eine vierstellige Zahl steht). Auch achtstelliger Unicode-Escapecode wird erkannt: \Udddddddd.

Bei der Schreibweise mit vorangestelltem @-Zeichen beginnen wörtliche Zeichenfolgenliterale mit @ und sind ebenfalls in doppelte Anführungszeichen eingeschlossen. Beispiele:

@"good morning"  // a string literal

Der Vorteil von wörtlichen Zeichenfolgen besteht darin, dass Escapesequenzen nicht verarbeitet werden, wodurch z. B. das Schreiben vollqualifizierter Dateinamen erleichtert wird:

@"c:\Docs\Source\a.txt"  // rather than "c:\\Docs\\Source\\a.txt"

Um ein doppeltes Anführungszeichen in einer Zeichenfolge mit vorangestelltem @-Zeichen zu verwenden, verdoppeln Sie es:

@"""Ahoy!"" cried the captain." // "Ahoy!" cried the captain.

Ein weiterer Verwendungszweck des @-Symbols besteht in der Verwendung von referenzierten Bezeichnern (/reference), die gleichzeitig C#-Schlüsselwörter sind.

Weitere Informationen über Zeichenfolgen in C# finden Sie im Zeichenfolgen (C#-Programmierhandbuch).

Beispiel

class SimpleStringTest 
{
   static void Main()
   {
      string a = "\u0068ello ";
      string b = "world";
      Console.WriteLine( a + b );
      Console.WriteLine( a + b == "Hello World" ); // == performs a case-sensitive comparison
   }
}
/* Output:
    hello world
    False
 */

C#-Programmiersprachenspezifikation

Weitere Informationen finden Sie in der C#-Sprachspezifikation. Die Sprachspezifikation ist die verbindliche Quelle für die Syntax und Verwendung von C#.

Siehe auch

Referenz

C#-Schlüsselwörter

Verweistypen (C#-Referenz)

Werttypen (C#-Referenz)

Konzepte

C#-Programmierhandbuch

Empfohlene Vorgehensweisen für die Verwendung von Zeichenfolgen in .NET Framework

C#-Programmierhandbuch

Erstellen neuer Zeichenfolgen

Weitere Ressourcen

C#-Referenz

Grundlegende Zeichenfolgenoperationen

Tabelle zur Formatierung numerischer Ergebnisse (C#-Referenz)