27

次のメソッド シグネチャを検討してください。

public static void WriteLine(string input, params object[] myObjects)
{
    // Do stuff.
}

WriteLine メソッドの "myObjects" パラメーターが params キーワードを使用し、変数の引数を取ることができることを確認するにはどうすればよいですか?

4

3 に答える 3

38

の存在を確認し[ParamArrayAttribute]ます。

のパラメータparamsは常に最後のパラメータになります。

于 2009-03-09T19:30:54.203 に答える
20

ParamArrayAttributeが適用されている場合は、 ParameterInfoを確認します。

static bool IsParams(ParameterInfo param)
{
    return param.GetCustomAttributes(typeof (ParamArrayAttribute), false).Length > 0;
}
于 2009-03-09T19:33:03.340 に答える
12

少し短くて読みやすい方法:

static bool IsParams(ParameterInfo param)
{
    return param.IsDefined(typeof(ParamArrayAttribute), false);
}
于 2016-12-14T19:27:20.280 に答える