Многострочный интерполированный строковый литерал C#C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Многострочный интерполированный строковый литерал C#

Сообщение Anonymous »

В C# 6 реализована поддержка компилятором интерполированных строковых литералов с синтаксисом:

Код: Выделить всё

var person = new { Name = "Bob" };

string s = $"Hello, {person.Name}.";
Это отлично подходит для коротких строк, но если вы хотите создать более длинную строку, нужно ли указывать ее в одной строке?

С другими типами строк вы можете:

Код: Выделить всё

    var multi1 = string.Format(@"Height: {0}
Width: {1}
Background: {2}",
height,
width,
background);
Или:

Код: Выделить всё

var multi2 = string.Format(
"Height: {1}{0}" +
"Width: {2}{0}" +
"Background: {3}",
Environment.NewLine,
height,
width,
background);
Я не могу найти способ добиться этого с помощью интерполяции строк, не помещая все это в одну строку:

Код: Выделить всё

var multi3 = $"Height: {height}{Environment.NewLine}Width: {width}{Environment.NewLine}Background: {background}";
Я понимаю, что в этом случае вы можете использовать \r\n вместо Environment.NewLine (менее переносимый) или вытащить его из локального, но будут случаи, когда вы не сможете уменьшить его ниже одной строки без потери семантической силы.

Это просто тот случай, когда интерполяция строк не должна использоваться для длинных строк?

Следует ли мы просто используем StringBuilder для более длинных строк?

Код: Выделить всё

var multi4 = new StringBuilder()
.AppendFormat("Width: {0}", width).AppendLine()
.AppendFormat("Height: {0}", height).AppendLine()
.AppendFormat("Background: {0}", background).AppendLine()
.ToString();
Или есть что-то более элегантное?

Подробнее здесь: https://stackoverflow.com/questions/332 ... ng-literal
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»