Чтение необработанной строки из файла в 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
Литеральные строки, использующие символ @, просто говорят компилятору буквально взять предоставленный текст.
Насколько я знаю, нет способа конвертировать строку в буквальную версию этой строки.
Но вы могли бы легко написать тот код, который заменяет двойные кавычки одинарными.