чтение необработанной строки из файла в C # - PullRequest
3 голосов
/ 09 февраля 2012

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

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

Ответы [ 3 ]

2 голосов
/ 09 февраля 2012

почему бы тебе не сбежать?

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

enter image description here

1 голос
/ 09 февраля 2012

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

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

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

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

0 голосов
/ 09 февраля 2012

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...