メソッドではオーバーロードによって同じ名前のメソッドが複数存在する場合があり、またコンストラクタでは名前を持たないため名前で区別することができません。 このようにオーバーロードが存在し、メンバ名だけでは特定のメンバを限定できない場合は、引数リストを指定することによって取得対象を限定することができます。

引数リストは次の例のようにTypeの配列で指定します。 引数がない場合は空の配列か、Type.EmptyTypesフィールドを指定します。 引数の型・数・順序のすべてに一致するものがなければnull/Nothingが返されます。

引数リストを指定してメソッドのオーバーロードを限定して取得する
Imports System
Imports System.Reflection

Class C
  Public Overloads Sub M(ByVal x As Integer)
  End Sub

  Public Overloads Sub M(ByVal x As Integer, ByVal y As Integer)
  End Sub
End Class

Class Sample
  Shared Sub Main()
    Dim t As Type = GetType(C)

    ' Integer型の引数を1つとるメソッドMのオーバーロードを取得する
    Dim m1 As MethodInfo = t.GetMethod("M", New Type() {GetType(Integer)})

    ' Integer型の引数を2つとるメソッドMのオーバーロードを取得する
    Dim m2 As MethodInfo = t.GetMethod("M", New Type() {GetType(Integer), GetType(Integer)})

    Console.WriteLine(m1)
    Console.WriteLine(m2)
  End Sub
End Class
実行結果
Void M(Int32)
Void M(Int32, Int32)