次の違いがある場合は、その違いを知りたいです。
StringBuilder sb = new StringBuilder();
sb.Append("xxx");
sb.Append("yyy");
sb.Append("zzz");
と :
StringBuilder sb = new StringBuilder();
sb.Append("xxx")
.Append("yyy")
.Append("zzz");
次の違いがある場合は、その違いを知りたいです。
StringBuilder sb = new StringBuilder();
sb.Append("xxx");
sb.Append("yyy");
sb.Append("zzz");
と :
StringBuilder sb = new StringBuilder();
sb.Append("xxx")
.Append("yyy")
.Append("zzz");
違いはありません。後者のケースは「Fluent Syntax」と呼ばれます。
機能的な違いはありません。StringBuilder
最初のケースでは、3 つのステートメントで同じ順序で文字列を同じものに追加しています。StringBuilder
2 番目のケースでは、1 つのステートメントで同じ文字列を同じ文字列に追加しています。
顕著なパフォーマンスの違いはなく、目に見える違いはまったくありません。どちらかをスタイリッシュに選択できます。
IL は確かに 2 つの間で異なって見えます。一見すると、連鎖バージョンの方が数ナノ秒速いかもしれません (私は単にナノ秒と言いたいだけです)。しかし、コードのリファクタリングを考慮する必要はありません。どちらか一方がきれいに見える場合は、その道を進みます。
それはいつも私を悩ませていましStringBuilder.Append
た。これにより、StringBuilder が不変の構造であると考えるようになりますが、そうではないことは間違いありません。また、返されるものを明示的に無視する必要がある F# では特に厄介です。でもどうする?
それらの間に違いはありません。ただし、コード行を減らすために2番目のものを使用できます:)