4

私はここでいくつかの投稿を読みましたが、一般的な提案は、3つの文字列を結合する場合にstringbuilderが最も効率的であるということです。

すべての変数は他のプロパティです。

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

私は4つに参加していますが、単純な連結が適切ですか、それともstringbuilderを使用する必要がありますか?ちょっとやり過ぎのようです。

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;

文字列はインターンプールに格納されるため、文字列の連結でもそれほど悪くはありません。したがって、文字列を2回使用する場合、文字列は作成されませんが、すでに使用可能な参照が使用されます。

したがって、経験則として:

  • 少数の文字列を連結していて、コードが理解しにくい場合は、次を使用してください。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 に答える