考虑这种方法签名:

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

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

有帮助吗?

解决方案

检查是否存在 [ParamArrayAttribute]

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

其他提示

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

static bool IsParams(ParameterInfo param)
{
    return param.GetCustomAttributes(typeof (ParamArrayAttribute), false).Length > 0;
}

稍微更短且更易读的方式:

static bool IsParams(ParameterInfo param)
{
    return param.IsDefined(typeof(ParamArrayAttribute), false);
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top