【VB】C#との差異 (拡張メソッド 編)

■ はじめに

http://blogs.yahoo.co.jp/dk521123/22569878.html
で扱った拡張メソッドは、VB.NETでも書けるのでメモ。

■ 注意

http://www.atmarkit.co.jp/fdotnet/bookpreview/kisokaravb_1102/kisokaravb_1102_01.html
より抜粋

 * 拡張メソッドはモジュールで定義する必要がある
「モジュール」について、以下の関連記事を参照のこと。
http://blogs.yahoo.co.jp/dk521123/25821654.html

■ 構文

<System.Runtime.CompilerServices.Extension()> _
Public Sub 拡張メソッド名(ByVal 引数 As 拡張すべきクラス, パラメータリスト)
   ' 拡張メソッドの定義
End Sub

■ サンプル

実装例
Imports System.Runtime.CompilerServices

Public Enum Gender
    None = -1
    Man
    Woman
End Enum

Public Module GenderHelper

    <Extension()>
    Public Function ToNumber(ByVal value As Gender) As Integer
        Return Convert.ToInt32(value)
    End Function

End Module
呼び出し側
Me.Gender.ToNumber()


関連記事

C#】拡張メソッド

http://blogs.yahoo.co.jp/dk521123/22569878.html