misc.log

日常茶飯事とお仕事と

Visual Basic 2010、拡張メソッド

今の職場の人が作った別プロジェクトのソースを見てます。で、いくつか知らないものが出てきたのでチェック。一つが「拡張メソッド」なるもの。珍しく「モジュール」として定義されたロジックのメソッド冒頭に「

  • 別のクラスに外部からメソッドを追加する。
  • 継承などを行わなくても拡張できる。
  • .NET Framework標準のクラスにも追加できる。


へぇ。拡張メソッドとして宣言されたメソッドの第一引数にある「型」が、拡張対象になるそうで。従って、「As String」と宣言すればStringクラスを拡張しちゃうわけですね。で、その引数として渡された「対象クラス」のメソッドやプロパティにはアクセスできるそうですが、内部の情報にはアクセスできない……と。見てる例では「VB.NETのStringに、VB6.0の文字列操作関数の機能をのっけてしまう」という使い方がされてます。なるほど…。

参考

VB開発者のための拡張メソッド入門―第11章 高度なプログラミング〜プログラミングの世界を広げる(後編)―
http://www.atmarkit.co.jp/fdotnet/bookpreview/kisokaravb_1102/kisokaravb_1102_01.html