Объявление looooong одной строки представляет в виде строки в C#

SET ESCAPE ON;
INSERT VALUES("J\&J Construction") INTO custnames;

(Непротестированный, не имейте поля Oracle под рукой, и это было некоторое время)

34
задан JasonMArcher 16 July 2015 в 17:26
поделиться

10 ответов

Это зависит от того, как строка будет использоваться. Все ответы здесь верны, но важен контекст. Если длинная строка «s» будет регистрироваться, она должна быть окружена тестом защиты журнала, например, в этом примере Log4net:

if (log.IsDebug) {
    string s = "blah blah blah" + 
    // whatever concatenation you think looks the best can be used here,
    // since it's guarded...
}

Если длинная строка s будет отображаться пользователю, то Разработчик Ответ Art - лучший выбор ... они должны быть в файле ресурсов.

Для других целей (создание строк запроса SQL, запись в файлы [но еще раз подумайте о ресурсах для них] и т. Д.) , где вы объединяете больше, чем просто литералы, рассмотрите StringBuilder, как предлагает Wael Dalloul , особенно если ваша строка может оказаться в функции, которая может в какой-то момент в далеком будущем, вызываться много-много раз в критичном ко времени приложении (все эти вызовы складываются). Я делаю это, например, при построении SQL-запроса, в котором у меня есть параметры, которые являются переменными.

Кроме этого, нет, я не знаю ничего, что выглядело бы красиво и легко набиралось (хотя предложение переноса слов - хорошая идея, оно может плохо работать с инструментами сравнения, распечатками кода или инструменты проверки кода). Это перерывы. (Я лично использую подход со знаком плюса, чтобы сделать обтекание строк аккуратным для наших распечаток и обзоров кода).

распечатки кода или инструменты проверки кода). Это перерывы. (Я лично использую подход со знаком плюса, чтобы сделать обтекание строк аккуратным для наших распечаток и обзоров кода).

распечатки кода или инструменты проверки кода). Это перерывы. (Я лично использую подход со знаком плюса, чтобы сделать обтекание строк аккуратным для наших распечаток и обзоров кода).

8
ответ дан 27 November 2019 в 16:08
поделиться

Должен ли он быть определен в исходном файле? В противном случае определите его в файле ресурсов или конфигурации.

6
ответ дан 27 November 2019 в 16:08
поделиться

вы можете использовать StringBuilder следующим образом:

StringBuilder str = new StringBuilder();
str.Append("this is my really long string.  this is my long string. ");
str.Append("this is my really long string.  this is my long string. ");
str.Append("this is my really long string.  this is my long string. ");
str.Append("this is my really long string.  this is my long string. ");
string s = str.ToString();

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

5
ответ дан 27 November 2019 в 16:08
поделиться

Лично я бы прочитал такую ​​большую строку из файла, возможно, XML-документа.

3
ответ дан 27 November 2019 в 16:08
поделиться

Для действительно длинных строк я бы сохранил их в XML (или в ресурсе). В тех случаях, когда это имеет смысл включить в код, я использую объединение многострочных строк с оператором + . Однако единственное место, где я могу думать о том, где я это делаю, - это мои модульные тесты для кода, который читает и анализирует XML, где я на самом деле пытаюсь избежать использования XML-файла для тестирования. Так как это модульный тест, я почти всегда хочу иметь строку прямо здесь, чтобы ссылаться на нее. В таких случаях я мог бы выделить их все в директиву #region, чтобы при необходимости показать / скрыть ее.

2
ответ дан 27 November 2019 в 16:08
поделиться

При использовании Visual Studio

Tools > Options > Text Editor > All Languages > Word Wrap

я уверен, что любой другой текстовый редактор (включая блокнот) сможет это сделать!

8
ответ дан 27 November 2019 в 16:08
поделиться

Вы можете использовать StringBuilder

1
ответ дан 27 November 2019 в 16:08
поделиться

Я либо просто запускаю его, либо использую string.format и записываю строку в одну строку (метод let it run), но помещаю каждый из аргументов в новую строку, что делает его либо легче читать, или, по крайней мере, дать читателю некоторое представление о том, что он может ожидать от длинной строки, не читая ее подробно.

0
ответ дан 27 November 2019 в 16:08
поделиться

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

62
ответ дан 27 November 2019 в 16:08
поделиться

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

string longString = @"Some long string, 
    with multiple whitespace characters 
    (including newlines and carriage returns)
    converted to a single space
    by a regular expression replace.";

longString = Regex.Replace(longString, @"\s+", " ");
6
ответ дан 27 November 2019 в 16:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: