Чтение необработанной строки из файла в C#

У меня есть следующий литерал необработанной строки: @"some text ""here"" and some more text"Все работает нормально, когда мне присвоили строковую переменную в программе.
Но когда я положил эту строку - "some text ""here"" and some more text" и прочитайте его, он не распознается как необработанная строка.

Что я должен сделать, чтобы C# распознал это как необработанную строку? В частности, что является программным эквивалентом спецификатора '@', используемого для указания того, что строка является необработанной строкой?

3 ответа

Почему вы не избежите этого?

"some text \"here\" and some more text"

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

Там нет программного эквивалента @ спецификатор. Спецификатор используется только во время компиляции для преобразования буквального строковоголитерала в его внутреннее представление. (Кстати, собственное имя - дословная строка, а не необработанная строка).

Следовательно, str1а такжеstr2 ниже представляют одну и ту же строку во время выполнения:

string str1 = "some text \"here\" and some more text";
string str2 = @"some text ""here"" and some more text";

Единственная разница между ними видна только в вашем исходном коде. Вам не нужно применять какие-либо программные преобразования, когда вы читаете строки из текстового файла.

Я думаю, когда вы говорите необработанную строку, вы имеете в виду буквальную строку.

http://msdn.microsoft.com/en-us/library/aa691090(v=vs.71).aspx

Литеральные строки, использующие символ @, просто говорят компилятору буквально взять предоставленный текст.

Насколько я знаю, нет способа конвертировать строку в буквальную версию этой строки.

Но вы могли бы легко написать тот код, который заменяет двойные кавычки одинарными.

Другие вопросы по тегам