Можно ли избежать двойной кавычки в дословном строковом литерале?
в дословном строковом литерале (@"foo") в C# обратные косые черты не рассматриваются как экранирование, поэтому выполнение " для получения двойной кавычки не работает. Есть ли способ получить двойную кавычку в дословном строковом литерале?
это по понятным причинам не работает:
string foo = @"this "word" is escaped";
4 ответа:
используйте дублированную двойную кавычку.
@"this ""word"" is escaped";
выходы:
this "word" is escaped
для добавления дополнительной информации, ваш пример будет работать без
@
символ (он предотвращает побег с\), таким образом:string foo = "this \"word\" is escaped!";
Он будет работать в обоих направлениях, но я предпочитаю стиль двойной кавычки, чтобы он был проще работать, например, с именами файлов (с большим количеством \ в строке).
Это должно помочь прояснить любые возникшие у вас вопросы: в C# литералы
Вот таблица из содержания: