Могу ли я избежать двойной кавычки в стенографическом литерале?

В текстовом литерале строки (@ "foo" ) в С# обратные косые черты не рассматриваются как escape-последовательности, поэтому делать "двойную цитату" не работает. Есть ли способ получить двойную кавычку в verbatim string literal?

Это понятно, что не работает:

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

Ответ 1

Используйте дублированную двойную кавычку.

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

выходы:

this "word" is escaped

Ответ 2

Использовать двойные кавычки.

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

Ответ 3

Чтобы добавить дополнительную информацию, ваш пример будет работать без символа @ (он предотвращает экранирование с помощью \), таким образом:

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

Он будет работать в обоих направлениях, но я предпочитаю стиль двойной кавычки, чтобы он работал легче, например, с именами файлов (с большим количеством строк в строке).

Ответ 4

Это должно помочь прояснить любые вопросы, которые могут возникнуть у вас: С# literals

Вот таблица из связанного контента:

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

Ответ 6

string s = "this \"word\" is escaped";

//Результат будет → это "слово" экранировано