2

このコードスニペットでしょうか

StringBuilder builder = new StringBuilder();
builder.Append("Have a ");
builder.Append("nice day!");

このように書く方がいいですか?

  StringBuilder builder = new StringBuilder();
  builder.Append("Have a ")
         .Append("nice day!");

C#とJavaでは、それを書くためのより良い方法は何でしょうか?

4

1 に答える 1

0

2 番目の例のパターンは、「流暢な API」/「流暢なインターフェイス」です。率直に言って、厳密にはどちらも優れているわけではありません。.NET IL の用語では、最初の構文には余分なldlocand popper 反復が含まれ、2 番目の構文では回避されますが、それが非常に重要になることはめったにありません。どちらでもうまくいきます。

個人的には、パフォーマンスが重要な場所にあることがわかっていない限り、読みやすさと利便性を最適化します。

実際、次のように使用できます。

string s = "Have a " + "nice day!";

コンパイラ(少なくともC#では-Javaについては知りません)はコンパイル時に計算し(両方とも定数であるため)、単一にコンパイルしますldstr(これも自動的にインターンされます)。

于 2013-02-25T09:16:21.050 に答える