with what net method getfields done c# .net reflection params

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); }