【发布时间】:2009-02-18 13:56:48
【问题描述】:
有没有办法String.Format 一条消息而不必指定{1}, {2}, 等?是否有可能有某种形式的自动增量? (类似于普通的老printf)
【问题讨论】:
-
不使用数字的目的是什么?也许如果我们可以了解您想要避免使用它们的原因,我们会提供更有用的解决方案...
-
我大概有20个参数,每一个都写一个数字比较麻烦。我也担心我可能会错过一个数字,或者使用一个数字两次。而且我觉得没有数字的可维护性可能更容易。
-
我想可以理解...如果我想将尚未格式化的字符串嵌入到其他尚未格式化的字符串中...然后在过程结束时附加参数,我总是觉得很费力这也有同样的缺点。
-
使用索引,您不受所提供参数的顺序的约束。当您想要翻译该格式字符串时,这很好。
-
对于 C#7,答案已经过时,因为它包括 "string interpolation",就像在 Perl 中一样:
$"{name} is {age} year{(age == 1 ? "" : "s")} old."--> Horace 34 岁。
标签: c# .net string formatting