考虑这种方法签名:
public static void WriteLine(string input, params object[] myObjects)
{
// Do stuff.
}
如何确定WriteLine方法的“myObjects”参数使用params关键字并且可以接受变量参数?
答案 0 :(得分:35)
检查其上是否存在[ParamArrayAttribute]
。
params
的参数将始终是最后一个参数。
答案 1 :(得分:18)
检查ParameterInfo,如果已应用ParamArrayAttribute:
static bool IsParams(ParameterInfo param)
{
return param.GetCustomAttributes(typeof (ParamArrayAttribute), false).Length > 0;
}
答案 2 :(得分:9)
稍微更短且更易读的方式:
static bool IsParams(ParameterInfo param)
{
return param.IsDefined(typeof(ParamArrayAttribute), false);
}