C#:最可读的字符串连接.最佳实践

And*_*rko 14 c# string string-concatenation

可能重复:
我应该如何连接字符串?

有几种方法可以Concat的字符串在日常任务时的表现并不重要.

  • result = a + ":" + b
  • result = string.Concat(a, ":", c)
  • result = string.Format("{0}:{1}", a, b);
  • StringBuilder approach
  • ......?

你更喜欢什么?为什么效率无关紧要,但你想保持代码最符合你的口味?

Ste*_*ven 9

这取决于用途.当你只想连接两个字符串时,使用a + b它的可读性要高得多string.Format("{0}{1}", a, b).然而,它变得越来越复杂,我更喜欢使用string.Format.比较一下:

string x = string.Format("-{0}- ({1})", a, b);
Run Code Online (Sandbox Code Playgroud)

反对:

string x = "-" + a + "- (" + b + ")";
Run Code Online (Sandbox Code Playgroud)

我认为在大多数情况下,很容易发现最易读的做事方式.在有争议哪一个更易读的情况下,只需选择一个,因为你的老板不支付这些毫无意义的讨论;-)

  • 同意,但是当你必须维护代码时,很难衡量重新学习你或他人所做的事情所花费的时间.通常,花费更少的时间来制作更易于阅读和理解的内容,以便在您尚未完全解决问题并且必须修复某些内容时为您节省时间.因此,您希望编写可理解的代码并养成良好的习惯.维护是开发人员最大的成本之一,也是老板应该关注的事情. (3认同)
  • 最后一句话+1.:)大多数时候它真的没关系; 你可以做一些比决定使用哪种字符串连接方法更有成效的方法. (2认同)
  • @mattmc:DGMW:我认为可维护性(在正确性之后)是软件最重要的方面.在我的职业生涯中,我看到很多糟糕的代码变成了维护噩梦.与您的大学讨论对于获得关于什么是最具可读性的普遍共识非常重要.然而,总是在它与生产力之间进行权衡.正如你所说,很难衡量盈亏平衡点所处的位置.这些讨论在某种程度上是有用的.我试图说的是,对可读性过于接近的几种风格进行无休止的讨论并不是很有用. (2认同)

Chr*_*ver 8

string.Format 对我来说,但在实践中,我会考虑性能和可读性,使用适合的目的.

如果是我使用的两个变量.

string.Concat(str1, str2);

如果它包含一个常量或需要格式化的东西.

string.Format("{0} + {1} = {2}", x, y, x + y);

或者类似于SQL查询

string SqlQuery = "SELECT col1, col2, col3, col4" + 
                  "FROM table t " + 
                  "WHERE col1 = 1";
Run Code Online (Sandbox Code Playgroud)

当性能很重要时,字符串构建器