1

刚开始第一次使用 C#,在浏览教程时,我没有发现用于输出的串联(console.writeline("Hello" + user)用户是字符串变量)和占位符(console.writeline("Hello {0}" , user用户是字符串变量)方法之间的区别. 是否有区别,或者仅仅是您发现哪种方式更容易

4

3 回答 3

2

它并不是真正特定于 C#,许多语言都支持这两种样式。后一种形式通常被认为“更安全”,但我无法引用任何具体原因。如果项目需要出现在 1 个以上的位置,或者要将格式字符串保存为常量,这将很有用。查看此线程以获取更多信息:何时使用 String.Format 与字符串连接更好?.

于 2013-02-07T19:08:13.403 回答
1

使用字符串格式化程序,而不是字符串连接,几乎完全是关于可读性。他们实际的事情,甚至他们的表现,都非常接近。

对于这样一个简单的情况,两者看起来都不错,但是当您有一个复杂的字符串,其中包含许多混合在格式字符串中的值时,最终看起来会更好:

这是一个更好的例子:

string output = "Hello " + username + ".  I have spent " + executionTime + " seconds trying to figure out that the answer to life is: " + output;

对比

string output = string.Format("Hello {0}.  I have spent {1} seconds trying to figure out that the answer to life is: {2}"
    , username, executionTime, output);
于 2013-02-07T19:42:17.977 回答
0

正如马特所说,占位被认为是比简单连接更安全的方法,但我不确定是否出于这个原因(我需要对此进行探索)。但是,有一点可以肯定,就性能而言,Place Holding 的操作成本比 Concatenation 高。查看 Jon Skeet 的这篇博客文章“格式化字符串”

尽管只有在您使用占位符数千次左右时,性能才会受到显着影响。

于 2013-02-07T19:29:27.550 回答