Каков синтаксис для инициализации строки с блоком текста в .NET? - PullRequest
2 голосов
/ 14 мая 2009

Я пишу модульный тест и не могу вспомнить синтаксис для инициализации строки с большим блоком форматированного текста.

string _testData = "a couple screens worth of text data here
and I need to preserve the formatting
such as line breaks,
etc.";

Ответы [ 5 ]

15 голосов
/ 14 мая 2009

Добавьте @ перед литералом.

string _testData = @"a couple screens worth of text data here
and I need to preserve the formatting
such as line breaks,
etc.";
10 голосов
/ 14 мая 2009

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

string _testData = @"a couple screens worth of text data here
and I need to preserve the formatting
such as line breaks,
etc.";

С MSDN : "Строковые литералы дословно начинаются с @ и также заключены в двойные кавычки. Преимущество дословных строк заключается в том, что escape-последовательности не обрабатываются, что облегчает, например, запись , полное имя файла. Чтобы включить двойную кавычку в строку с @ кавычками, удвойте ее. "

5 голосов
/ 14 мая 2009

Как уже говорили другие, это

    string _testData = @"a couple screens worth of text data here
and I need to preserve the formatting
such as line breaks,
etc.";

Это называется дословным строковым литералом . Другой эффект заключается в том, что обратный слеш больше не используется для экранирования чего-либо, что делает его полезным для регулярных выражений и путей к файлам Windows.

Двойные кавычки достигаются путем удвоения. Например, чтобы получить x"y в строке:

string verbatim = @"x""y";
string regular = "x\"y";
1 голос
/ 14 мая 2009

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

0 голосов
/ 14 мая 2009

Я согласен с Уэйном Хартманом - просто сохраните большой текст в виде текстового файла и прочитайте его в строку для теста, например:

 string testData = File.ReadAllText(fileToRead);
    //Unit test using the testData

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

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