【发布时间】:2015-10-24 05:43:08
【问题描述】:
我发现,虽然字符串插值在应用于我现有代码库的字符串格式调用时非常好,但考虑到通常首选的列限制,对于单行来说,字符串很快就会变得太长。特别是当被插值的表达式很复杂时。使用格式字符串,您有一个变量列表,您可以将其拆分为多行。
var str = string.Format("some text {0} more text {1}",
obj1.property,
obj2.property);
有没有人有任何首选的方法来打破这些线?
我想你可以这样做:
var str = $"some text { obj1.property }" +
$" more text { obj2.property };
【问题讨论】:
-
根据我的经验,最好避免插入复杂的表达式。而是在这种情况下提取一个变量。如果你这样做,并且你在字符串中有换行符的地方拆分,它通常会很好。
-
我对这个问题感到困惑。我只想要一个多行
$"",它的工作方式类似于@"" -
Colonel Panic,问题是关于如何分解长插值线,这样我们就不会违反列宽要求,而不会在字符串文字本身中引入换行符。 $@"" 很棒,但是任何引入的换行符都将在字符串文字中。
-
要在 $@ 中支持 \t\r\n,请参阅问题 stackoverflow.com/questions/51991713/…
-
实际上,即使
$"a: {a}" + $"b: {b}"也会产生一个简单的字符串,从而阻止我在多行上破坏字符串插值。 stackoverflow.com/questions/52788306/… 也得到了答案。