c# excel - Kann ich ein Anführungszeichen in einem wortgleichen String-Literal umgehen?




sql abap (5)

Verwenden Sie ein doppeltes Anführungszeichen.

@"this ""word"" is escaped";

Ausgänge:

this "word" is escaped

In einem wortwörtlichen String-Literal (@ "foo") in C # werden Backslashes nicht als Escape-Zeichen behandelt, sodass es nicht funktioniert, ein doppeltes Anführungszeichen zu erhalten. Gibt es eine Möglichkeit, ein Anführungszeichen in einem wortgleichen String-Literal zu erhalten ?

Dies funktioniert verständlicherweise nicht:

string foo = @"this \"word\" is escaped";

Um weitere Informationen hinzuzufügen, wird Ihr Beispiel ohne das @ -Symbol funktionieren (es verhindert das Entkommen mit \), wie folgt:

string foo = "this \"word\" is escaped!";

Es funktioniert in beide Richtungen, aber ich bevorzuge die doppelte Anführungszeichen-Stil, um es einfacher zu arbeiten, zum Beispiel mit Dateinamen (mit vielen \ in der Zeichenfolge).


Dies sollte dazu beitragen, Fragen zu klären, die Sie möglicherweise haben: c # Literale

Hier ist eine Tabelle aus dem verlinkten Inhalt:


Verwenden Sie doppelte Anführungszeichen.

string foo = @"this ""word"" is escaped";

Es wird in C # als wörtliches Zeichenfolgenliteral bezeichnet , und es ist nur eine Frage von @ vor dem Literal. Dies erlaubt nicht nur mehrere Zeilen, sondern auch das Ausbrechen. So können Sie zum Beispiel:

string query = @"SELECT foo, bar
FROM table
WHERE name = 'a\b'";

Das einzige Entkommen ist, dass Sie ein doppeltes Anführungszeichen hinzufügen müssen, wenn Sie ein doppeltes Anführungszeichen haben möchten:

string quote = @"Jon said, ""This will work,"" - and it did!";






c# string escaping literals verbatim-string