Pregunta

Considere la firma de este método:

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

¿Cómo puedo determinar que el método WriteLine " myObjects " pararameter usa la palabra clave params y puede tomar argumentos variables?

¿Fue útil?

Solución

Verifique la existencia de [ParamArrayAttribute] en él.

El parámetro con params siempre será el último parámetro.

Otros consejos

Verifique ParameterInfo , si ParamArrayAttribute se le ha aplicado:

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

Una forma un poco más corta y más legible:

static bool IsParams(ParameterInfo param)
{
    return param.IsDefined(typeof(ParamArrayAttribute), false);
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top