Предположим, что у Вас есть длинная строка (> 80 символов), что Вы хотите распространиться через несколько исходных строк, но не хотите включать любые символы новой строки.
Одна опция состоит в том, чтобы связать подстроки:
string longString = "Lorem ipsum dolor sit amet, consectetur adipisicing" +
" elit, sed do eiusmod tempor incididunt ut labore et dolore magna" +
" aliqua. Ut enim ad minim veniam";
Существует ли лучший путь, или действительно ли это - наилучший вариант?
Править: "Лучшим" я имею в виду самый легкий для кодера читать, записать, и редактирование. Например, если Вы действительно хотели новые строки, очень легко посмотреть на:
string longString =
@"Lorem ipsum dolor sit amet, consectetur adipisicing
elit, sed do eiusmod tempor incididunt ut labore et dolore magna
aliqua. Ut enim ad minim veniam";
Я задаюсь вопросом, существует ли что-то, столь же убирают, когда Вы не хотите новых строк.
Я бы использовал вариант Вашего метода:
string longString =
"Lorem ipsum dolor sit amet, consectetur adipisicing " +
"elit, sed do eiusmod tempor incididunt ut labore et dolore magna " +
"aliqua. Ut enim ad minim veniam.";
Здесь я начинаю строку на линии после знака равенства, так что все они выстраиваются в линию, а также слежу за тем, чтобы пробел оставался в конце строки (опять же, в целях выравнивания)
.Если вы хотите, чтобы код был минимальным и легко читался, я бы все равно использовал строку @ literal. Плюс она быстрее, если исходный код длинный и...
string verbatimLit = @"
__ __
/ `-' \
/_| N |_\ Sometimes
| I | format in code
| N | matters
|_____|
";
Тогда удалите новые строки из строки в 1 строке,
verbatimLit.Replace(Environment.NewLine, " ");
Ваша оригинальная идея, вероятно, самый простой способ получить встроенную строку литералов в вашем коде. Компилятор C# объединяет литералы, сконцентрированные с +
- так что, по сути, это эквивалентно одной действительно длинной строке.
Другой вариант, конечно, это экстернализация строки в конфигурационный файл или в файл настроек. Это позволило бы сделать ее более легко читаемой и легкой для изменения или локализации. Лично я избегаю размещать длинные строки текста непосредственно в коде приложения, если только они не очень статичны и не требуют локализации - текст сообщения внутреннего исключения и тому подобное.
.Для SQL-запросов или других длинных строк, которые имеют свой собственный синтаксис, я иногда делаю что-то вроде этого:
private const string QUERY = @"
SELECT *
FROM Table1 AS T1
INNER JOIN Table2 AS T2 ON T1.ID = T2.T1ID
WHERE T1.VALUE = @P1
GROUP BY T2.OTHERVALUE
";
Это оставляет форматирование строки нетронутым.
.Можно использовать несколько консолей, а затем объединять их в одну большую строку:
const string part1 = "part 1";
const string part2 = "part 2";
const string part3 = "part 3";
string bigString = part1 + part2 + part3;
Компилятор все равно "сложит" эти константы в одну большую строку, так что по сравнению с вашим исходным примером кода этот метод не требует никаких затрат времени на выполнение.
Этот подход имеет ряд преимуществ:
При поиске ответа на вопрос о том, как делать многострочные строки, возможно, лучше использовать файл ресурсов.
.