Чи можу я уникнути подвійної цитати у дослівному рядковому рядку?


534

У дослівному рядковому рядковому рядку (@ "foo") в C # зворотні косої риси не розглядаються як втечі, тому робити \ "отримання подвійної лапки не працює. ?

Це зрозуміло не працює:

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

Відповіді:


870

Використовуйте подвійну подвійну цитату.

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

Виходи:

this "word" is escaped

Я намагаюся використовувати @ Html.Raw (), і чотиримісна цитата розриває мою рядок
JoshYates1980,

1
Чи можете ви використовувати його без рядкового літералу? Здається, що Html.Raw () подбає про те, щоб це було для вас струною ...
Myles

2
Крім того , можна використовувати його в поєднанні з інтерполяцією рядків: $@"this ""{wordVar}"" is escaped";.
fdelia


95

Щоб додати ще додаткову інформацію, ваш приклад буде працювати без @символу (це запобігає виходу з \) таким чином:

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

Він буде працювати обома способами, але я віддаю перевагу стилю подвійних цитат, щоб він легше працював, наприклад, з назви файлів (з великою кількістю \ у рядку).


81

Це має допомогти з’ясувати будь-які питання, які у вас можуть виникнути: c # literals

Ось таблиця із пов’язаного вмісту:

введіть тут опис зображення

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.