拡張メソッド
静的クラス中に、第1引数にthisキーワードを修飾子として付けたstaticメソッド
static class StringExtensions
{
public static string AddTest(this string s)
{
s = "ok";
return s;
}
}
string s = "This is a Test String.";
string s1 = StringExtensions.AddTest(s); //通常の呼び出し
string s2 = s.AddTest(); //拡張メソッド呼び出し
通常の呼び出しの場合、thisの引数部分を書く必要があるが、拡張メソッドの呼び出しで行った場合、string型の拡張になり、現在の呼び出し元のstring型の変数などがthisの引数部分に自動的になり、引数を省略可能になる。
まだ最後まで理解していませんが、処理を連続して行いたいときに拡張して使うって感じでしょうか? 行数を減らす意味で、s.Substring(0,2).AddTest();って感じっすかね。ちなみに今書いたs.Substring(0,2).AddTest();って全く意味無いんで自分でより良く拡張してくださいね。
http://ufcpp.net/study/csharp/sp3_extension.html