27

考虑这个方法签名:

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

如何确定 WriteLine 方法的“myObjects”参数使用 params 关键字并且可以采用可变参数?

4

3 回答 3

38

检查[ParamArrayAttribute]它的存在。

with 的参数params将始终是最后一个参数。

于 2009-03-09T19:30:54.203 回答
20

检查ParameterInfo,如果ParamArrayAttribute已应用于它:

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 回答