String.Format还是不?

时间:2008-12-08 14:12:18

标签: .net coding-style format string.format

String output: format or concat in C#?

复制

特别是在使用String.Format的C#世界中,一切都很常见,通常作为VB.NET开发人员,除非我必须*我不是String.Format,

我更喜欢正常的字符串连接,例如:

V1 = V2 & "test-x" & V3 & "-;"
对我来说,这比这更好:

V1 = String.Format("{0} test-x {1} -;", V2, V3)

我错过了什么吗?或者这只是个人偏好?

使用String.Format的原因(来自答案)我会尽量保持最新

  • 如果使用字符串格式
  • ,本地化会更容易
  • 显然,更改输入格式
  • 更容易
  • 它更具可读性(但这是个人的
  • 更好的表现

**有时我需要动态更改样式或替换内容然后使用String.Format *

8 个答案:

答案 0 :(得分:14)

如果您打算本地化您的应用程序(并且通常很难在开始时对其进行排序),那么String.Format将是首选,原因有两个:

  1. 您只有一个要翻译的字符串文字
  2. 您可以更改值的顺序,这可能在另一种语言中更有意义。

答案 1 :(得分:5)

每个人都发布了有关string.format的可读性(我接受它,并且它具有null ref和国际化的好处是的)但是没有人提到它比简单的字符串连接(小数字)相当慢元素)或使用StringBuilder(大量的concats)。

如果性能很重要或者您正在进行大量操作(因此很快重要),那么您应该避免格式化。

编辑:按要求引用;)

http://msmvps.com/blogs/jon_skeet/archive/2008/10/06/formatting-strings.aspx

http://blog.briandicroce.com/2008/02/04/stringbuilder-vs-string-performance-in-net/

答案 2 :(得分:3)

Karl Seguin在这里发表了一篇很好的文章:code better - use string.format解释了一些好处。

答案 3 :(得分:1)

第一种方法很难阅读,甚至更难以打字。同样,一旦你开始进行大量的连接,就需要考虑性能因素。

答案 4 :(得分:1)

如果您实际上是格式化值({0:d}等),则String.Format比字符串连接要好得多。

答案 5 :(得分:1)

对我而言,这取决于内容。连接字符串会创建其他字符串对象(因为strings are immutable in .NET),但主要是它是可读性问题。

有时候当你想在字符串中放置换行符时会变得复杂,在这种情况下我倾向于使用类似的东西:

StringBuilder.AppendLine(string.Format("Some text {0}.", "here"));

答案 6 :(得分:0)

我个人发现String.Format更容易阅读,字符串显示为一个连续的文本。这取决于有多少参数,如果你需要寻找正确的参数来理解它,那么......

答案 7 :(得分:0)

我认为这更像是一种偏好。然而,一旦我开始经常使用它,我的大部分团队都会效仿。当我们讨论它时,人们一致认为这更容易理解和阅读。