StringBuilder を流暢にする
C# で StringBuilder を使っているときに、その記述が「冗長だな〜」とよく思っていました
サンプルソース、(1)の感じです
サンプルソースだとまだ順に並んでいますが、これにif文などが入ってくると、もっと込み入った感じになってきます
こちらの記事や
内部のドメイン固有言語
http://msdn.microsoft.com/ja-jp/magazine/ee291514.aspx
ちょっとした事なんですが
Append() を Apd()
AppendLine() を Ln()
として、戻り値にその StringBuilder インスタンスそのものを返す拡張メソッドを定義すると
メソッドチェーンが使えて、なかなか便利です
訂正
Append()、AppendLine() とも、StringBuilder インスタンスそのものを返すので、メソッドチェーンが使えます
引用記事では Apd()、Ln() のような、無闇にメソッド名を短縮することは、すすめていません
コメントでご指摘を頂きました、ありがとうございます
サンプルソース
public class Hoge { public static void Fuga() { StringBuilder b = new StringBuilder(); // (1) Append()、AppendLine() を使って流暢にした記述 b .Append("one") .Append(",") .Append("two") .Append(",") .Append("three") .AppendLine() ; // (2) Apd()、Ln() を使って流暢にした記述 b.Apd("four").Apd(",").Apd("five").Apd(",").Apd("six").Ln(); Console.WriteLine(b.ToString()); // (出力) // one,two,three // four,five,six } } public static class StringBuilderEx { public static StringBuilder Apd(this StringBuilder b, string v) { return b.Append(v); } public static StringBuilder Ln(this StringBuilder b) { return b.AppendLine(); } }