7

复制自:字符串输出:C# 中的格式或连接?

尤其是在 C# 世界中,对所有内容使用 String.Format 非常普遍,通常作为 VB.NET 开发人员,除非我必须*我不使用 String.Format,

我更喜欢普通的字符串连接,例如:

V1 = V2 & "test-x" & V3 & "-;"

对我来说这比这更好:

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

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

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

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

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

4

8 回答 8

14

如果您要本地化您的应用程序(并且通常很难在一开始就排除这种情况),那么 String.Format 是首选,原因有两个:

  1. 您只有一个字符串文字要翻译
  2. 您可以更改值的顺序,这在另一种语言中可能更有意义。
于 2008-12-08T14:19:20.033 回答
5

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

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

编辑:根据要求提供参考;)

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/

于 2008-12-08T14:22:57.857 回答
3

Karl Seguin 的好文章:代码更好 - 使用 string.format解释一些好处。

于 2008-12-08T14:15:55.857 回答
1

第一种方法很难阅读,而且打字更无聊。同样,一旦您开始进行大量此类连接,就需要考虑性能方面的考虑。

于 2008-12-08T14:16:40.880 回答
1

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

于 2008-12-08T14:17:13.687 回答
1

对我来说,这取决于内容。连接字符串确实会创建额外的字符串对象(因为字符串在 .NET 中是不可变的),但主要是可读性问题。

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

StringBuilder.AppendLine(string.Format("Some text {0}.", "here"));
于 2008-12-08T14:18:32.157 回答
0

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

于 2008-12-08T14:15:02.053 回答
0

我相信它更多的是一个偏好问题。但是,一旦我开始定期使用它,我的大多数团队都会效仿。当我们讨论它时,一致认为它更容易理解和阅读。

于 2008-12-08T14:20:35.817 回答