Я хочу ссылки Rvalues.
Всеми другими новыми возможностями является материал, что мы могли легко жить без (увы функции). Однако отсутствие Rvalues в C++ до сих пор заставило сотни авторов библиотеки шаблонов должными быть "взламывать" вокруг поврежденного Rvalue касательно проблемы.
Что насчет этого:
var result = string.Join(Environment.NewLine, new string[]{
"one",
"two"
});
Это немного болезненно и, возможно, излишне, но это дает возможность сохранить разделение строк в вашем коде.
To improve things a little, you could use an helper method:
static string MultiLine(params string[] args) {
return string.Join(Environment.NewLine, args);
}
static void Main(string[] args) {
var result = MultiLine(
"one",
"two"
);
}
А как насчет этого?
var result = "one\ntwo";
Если вас это беспокоит Концы строк, специфичные для ОС, используйте Формат
:
var result = String.Format("one{0}two", Environment.NewLine);
(Ну, «суетливость» - неправильное слово: при работе с текстовыми файлами окончания строк для ОС часто желательны или даже необходимы, когда работа с устаревшим программным обеспечением.)
«Лучший» - это очень открытая точка.
Вы после:
Все это имеет большое значение в отношении «наилучшего» способа что-либо сделать.
Я бы сказал, это зависит от того, что Вам нужно ...
Но для упрощения я бы сказал:
var s = new StringBuilder();
s.Append("one");
s.Append("two");
s.ToString();
Но поскольку мы не знаем, для чего Вам это нужно . Довольно сложно дать более точные подсказки
Иногда требуется более одной строки. Я использую Environment.NewLine, но я поместил его в метод умножения. :)
private string newLines(int multiplier)
{
StringBuilder newlines = new StringBuilder();
for (int i = 0; i < multiplier; i++)
newlines.Append(Environment.NewLine);
return newlines.ToString();
}
Riffing off of what @codymanix said, you could place the long multiline string in a resource file. This can be easier for certain deployment scenarios since the text "file" will be included in your DLL / EXE.
Вы не должны определять большие строки в исходном коде. You should define it in an external text file:
string s = File.OpenText("myfile.txt").ReadToEnd();