素朴な疑問
疑問はふと見つけたこの1行のコードから始まった。By C#
new StringBuilder("")というコードを見たけど、引数に""入れたほうがいい理由ってなんかあるんだろうか。自分はいつもnew StringBuilder()だけだからなんか気になる
2013-01-31 10:33:08@ayato_p Reflectorで覗いてみましたけど、new StringBuilder()との差は内部でString.Emptyが渡ってるか、""を直接渡してるかくらいの差っぽかったです。気にすることではないのかな
2013-01-31 10:40:34@cz75hiro なさげですね。初期が空だって意図したいってくらいでしょうか。まあ、あっても問題は無いと思うので気にしない程度
2013-01-31 12:02:36コストについての言及があったので
引数無しと、空の文字列を渡す微妙な差について、過去のブログエントリから考えてみよう
@haxe ちょっと前に""とstring.Emptyの差についてのエントリがTLに上がってましたけど、「併用すると無駄」っていうことくらいしか頭に残ってないですので、そっちもちょっと見直してみますw
2013-01-31 10:42:38む、さっきのエントリ読み返したら、new StringBuilder("")の正当性がちょっとだけ出てきた。ちょっとだけ。そこに反論するなら、「""と打つくらいなら、打たない時間的コストを削ったほうがまし」程度かな
2013-01-31 10:58:08この手のにもし正統性があったとしても、それが実質問題になったら解決はそれじゃダメだから書かないが正解だろうなーと。 http://t.co/qpJvmLpI
2013-01-31 11:56:38文字列連結のパフォーマンス
このへんから裏で微妙な齟齬が発生し始めていました。
本人はまだ気づかず。
@cz75hiro @nakanishiyasuo 作法としてBuilderは知っていた方がいいと思いますよ。あと、色々追加していくと+演算子は可読性を損ねるので、formatとbuilderと読みやすい書式を選択するのが良いかと
2013-01-31 12:03:52. @nakanishiyasuo @shuji_w6e 自分がStringBuilder使うのはループ中に文字列つなげていくときとか、+を複数ステートメントで使って記述が冗長になった時とかですかねぇ。概ね一般的な使い方をしてる…はず…
2013-01-31 12:12:38@shuji_w6e @cz75hiro +演算子で可読性を損ねるケースが思いつかないのですが....Builderを使うメリットは第一に性能面ですよね?
2013-01-31 12:18:43@shuji_w6e @cz75hiro えっ、それは意外です。appendと+では+の方が短いので可読性が高いと判断してました><
2013-01-31 12:22:09