Bestimmen, ob ein Parameter „params“ mithilfe von Reflektion in C # verwendet?
-
06-07-2019 - |
Frage
Betrachten Sie diese Methode Signatur:
public static void WriteLine(string input, params object[] myObjects)
{
// Do stuff.
}
Wie kann ich, dass die Writeline-Methode der „MyObjects“ bestimmen pararameter das Schlüsselwort params verwendet und variable Argumente?
Lösung
Überprüfen Sie für die Existenz von [ParamArrayAttribute]
auf sie.
Der Parameter mit params
wird immer der letzte Parameter sein.
Andere Tipps
Überprüfen Sie die Parameterinfo , wenn ParamArrayAttribute wurde auf sie angewendet:
static bool IsParams(ParameterInfo param)
{
return param.GetCustomAttributes(typeof (ParamArrayAttribute), false).Length > 0;
}
Eine etwas kürzer und lesbare Weise:
static bool IsParams(ParameterInfo param)
{
return param.IsDefined(typeof(ParamArrayAttribute), false);
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow