c#6 字符串 插值_.net-多行C#内插字符串li

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}";

我意识到在这种情况下,您可以使用StringBuilder代替Environment.NewLine(不太便携),或将其拉到本地,但是在某些情况下,您不能将其减少到一行以下而又不会失去语义强度。

仅仅是字符串不应该用于长字符串的情况?

我们是否应该使用StringBuilder来输入更长的字符串?

var multi4 = new StringBuilder()

.AppendFormat("Width: {0}", width).AppendLine()

.AppendFormat("Height: {0}", height).AppendLine()

.AppendFormat("Background: {0}", background).AppendLine()

.ToString();

还是有一些更优雅的东西?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值