【发布时间】:2015-10-03 04:19:18
【问题描述】:
我尝试将使用 String.Format 两次的代码行迁移到新的 .NET Framework 6 字符串插值功能,但直到现在我都没有成功。
var result = String.Format(String.Format("{{0:{0}}}{1}",
strFormat, withUnit ? " Kb" : String.Empty),
(double)fileSize / FileSizeConstant.KO);
一个可行的例子可能是:
var result = String.Format(String.Format("{{0:{0}}}{1}",
"N2", " Kb"), 1000000000 / 1048576D);
输出:953,67 Kb
这可能吗,还是我们需要为这种特殊情况使用旧结构?
【问题讨论】:
-
我的不是答案,但我不鼓励任何人(首先是我)将大量操作放在同一行。这只是可读性的问题,但也许插值可以成功。
-
字符串插值可能不可能,因为您正在注入格式字符串(通过
strFormat)。虽然它可以按照马里奥的建议进行简化以使其更具可读性。 -
您可以将内部 string.format 转换为字符串插值,但对于外部 string.format 则不可能。因为给定的字符串是可变的。
标签: c# .net string.format string-interpolation c#-6.0