3

メソッドによって受け入れられるパラメーターの数を取得し、これらのパラメーターの値に個別にアクセスすることは可能ですか? 最後のパラメーターを除く、メソッドのすべてのパラメーターの値を連結するメソッドを作成したいと考えています。ただし、パラメーターの数とパラメーターの名前は、アクセスするメソッドによって異なります。

次の疑似コードのようなことはできますか?

StringBuilder string = new StringBuilder();

for(int i = 0; i < Method.Parameters.Count - 1; i++)
{
     string.Append(Method.Parameters[i].Value);
}

どうもありがとうございました :)

4

2 に答える 2

5

これは次のようになります。

Type.GetType("MyClassType").GetMethod("foo").GetParameters().Length;
于 2013-08-08T08:40:49.877 に答える
1

のような方法があれば

void Foo(string s, int x, int y, bool flag)

その場合、プログラムで引数の数を決定する必要はありません。4 つの引数があることは既にわかっています。

{
    StringBuilder sb = new StringBuilder().Append(s)
                                          .Append(x)
                                          .Append(y);
}

メソッドに任意の数の引数を受け入れさせたい場合は、次のようにparamsキーワードを使用してメソッドを定義できます。

void Baz(params object[] args)

引数は配列としてメソッドに渡されるため、配列の長さから引数の数を判断できます。

{
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < args.Length - 1; i++)
    {
        sb.Append(args[i]);
    }
}

使用法:

Baz("xyzzy", 42, 0, false);
于 2013-08-08T08:46:06.723 に答える