hayateasdf's blog

Unity,C#, javascript,C++,python,batなど

拡張メソッド

静的クラス中に、第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