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


в дословном строковом литерале (@"foo") в C# обратные косые черты не рассматриваются как экранирование, поэтому выполнение " для получения двойной кавычки не работает. Есть ли способ получить двойную кавычку в дословном строковом литерале?

это по понятным причинам не работает:

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

4 ответа:

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

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

выходы:

this "word" is escaped

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

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

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

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

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

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

Вот таблица из содержания:

enter image description here