Es gibt eine Art von Zeichenfolge, in der Sie die Verarbeitung der Escapezeichen eines Literals deaktivieren und die Zeichenfolge unverändert ausgeben. Was ist diese Zeichenfolge? das Symbol, mit dem die Zeichenfolge vorangestellt wird, und eine mögliche Verwendung für?
ist es \?
Es ist das @
-Zeichen: @"c:\path"
Es wird wörtliches Zeichenfolgenliteral genannt.
Es wird Verbatim String-Literal genannt und verwendet das @ Präfix.
Ohne das Präfix ist es immer noch ein String-Literal - es ist ein reguläres String-Literal .
(Einige Leute denken irrtümlicherweise, dass der Begriff "String-Literal" nur für wortgetreue String-Literale gilt, aber er ist allgemeiner.)
Verbatim String-Literale sind nützlich für:
Beachten Sie, dass nur zur Kompilierungszeit einen Unterschied macht. Mit anderen Worten, diese beiden Aussagen sind genau gleich :
%Vor% Verbatim-Zeichenfolgenliterale werden immer noch wie reguläre Zeichenfolgenliterale interniert und beziehen sich immer noch auf Instanzen von System.String
etc.
Aus Abschnitt 2.4.4.5 der C # 4.0 Spezifikation :
Ein reguläres Zeichenfolgenliteral besteht aus null oder mehr Zeichen, die in doppelte Anführungszeichen eingeschlossen sind, wie in "Hallo", und kann sowohl einfache Escape-Sequenzen (wie \ t für das Tab-Zeichen) als auch hexadezimale und Unicode-Escape-Sequenzen enthalten / p>
Ein wörtliches Zeichenfolgenliteral besteht aus einem @ -Zeichen gefolgt von einem doppelten Anführungszeichen, null oder mehr Zeichen und einem schließenden Anführungszeichen. Ein einfaches Beispiel ist @ "Hallo". In einem wortgleichen String-Literal werden die Zeichen zwischen den Trennzeichen wortwörtlich interpretiert, die einzige Ausnahme ist eine quote-escape-Sequenz. Insbesondere werden einfache Escape-Sequenzen sowie hexadezimale und Unicode-Escape-Sequenzen nicht in wortgleichen String-Literalen verarbeitet. Ein wörtliches String-Literal kann sich über mehrere Zeilen erstrecken.
Beachten Sie, dass @ auch als Präfix verwendet werden kann, um Schlüsselwörter als Bezeichner zu verwenden:
%Vor% Dies ist selten nützlich, kann aber manchmal erforderlich sein, wenn Sie einen bestimmten Bezeichner verwenden. (Das Schlüsselwort class
kann beispielsweise für eine anonyme Typeigenschaft in ASP.NET MVC hilfreich sein.)
Wenn ich eine Zeichenfolge als solche hatte: c: \ affe.txt
Ich müsste dem Schrägstrich wie folgt entkommen:
string s = "c:\monkey.txt"
beachte den doppelten Schrägstrich
Alternativ können Sie mit dem '@' Zeichen angeben, dass die Zeichenfolge wörtlich genommen werden soll:
string s = @"c:\monkey.txt"
Tags und Links c#