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

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

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

class C {
  public void M(int x) {}
  public void M(int x, int y) {}
}

class Sample {
  static void Main()
  {
    var t = typeof(C);

    // int型の引数を1つとるメソッドMのオーバーロードを取得する
    MethodInfo m1 = t.GetMethod("M", new[] {typeof(int)});

    // int型の引数を2つとるメソッドMのオーバーロードを取得する
    MethodInfo m2 = t.GetMethod("M", new[] {typeof(int), typeof(int)});

    Console.WriteLine(m1);
    Console.WriteLine(m2);
  }
}
実行結果
Void M(Int32)
Void M(Int32, Int32)