4

我在这里阅读了一些帖子,常见的建议是如果加入三个字符串,则 stringbuilder 是最有效的。

所有变量都是其他属性。

public string Summary
{
  get 
  {
    return Name.Replace("_", " ") + "<strong>[" + Total + " Devices - " + BadCount + " Offline, " + PendingCount + " Pending]</strong>";
  }
}

我加入了四个,是一个简单的串联合适还是我应该使用字符串生成器?只是似乎有点矫枉过正。

4

2 回答 2

8

在这种情况下使用最易读的内容。否则就是过早的优化

我会使用String.Format

String result = String.Format("{0}<strong>[{1} Devices - {2} Offline, {3} Pending]</strong>"
, Name.Replace("_", " ")
, Total
, BadCount
, PendingCount);
return result;

甚至字符串连接也没有那么糟糕,因为字符串存储在实习池中。因此,如果您第二次使用一个字符串,它不会被创建,而是使用已经可用的引用。

所以作为经验法则:

  • 如果您要连接几个字符串并且代码很难理解,请使用String.Format
  • 如果您要连接几个(文字)字符串并且代码仍然可读,请使用+(字符串连接)
  • 如果您在带有可变字符串的(长)循环中创建字符串,请使用StringBuilder
于 2013-01-24T09:43:24.940 回答
2

采用String.Format

public string Summary
{
  get 
  {
    return String.Format(
        "{0}<strong>[{1} Devices - {2} Offline, {3} Pending </strong>",
        Name.Replace("_", " "), Total, BadCount, PendingCount);
  }
}
于 2013-01-24T09:42:25.393 回答