net - what can be done with reflection in c#
¿Determinar si un parámetro usa "parámetros" usando la reflexión en C#? (3)
Compruebe la ParameterInfo , si se le ha aplicado ParamArrayAttribute :
static bool IsParams(ParameterInfo param)
{
return param.GetCustomAttributes(typeof (ParamArrayAttribute), false).Length > 0;
}
Considere la firma de este método:
public static void WriteLine(string input, params object[] myObjects)
{
// Do stuff.
}
¿Cómo puedo determinar que el parámetro de "myObjects" del método WriteLine usa la palabra clave params y puede tomar argumentos variables?
Compruebe la existencia de [ParamArrayAttribute]
en él.
El parámetro con parámetros siempre será el último parámetro.
Una forma un poco más corta y más legible:
static bool IsParams(ParameterInfo param)
{
return param.IsDefined(typeof(ParamArrayAttribute), false);
}