Domanda

Considera questa firma del metodo:

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

Come posso determinare che il metodo WriteLine " myObjects " pararameter utilizza la parola chiave params e può accettare argomenti variabili?

È stato utile?

Soluzione

Controlla l'esistenza di [ParamArrayAttribute] su di esso.

Il parametro con params sarà sempre l'ultimo parametro.

Altri suggerimenti

Controlla ParameterInfo , se ParamArrayAttribute è stato applicato ad esso:

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

Un modo leggermente più breve e più leggibile:

static bool IsParams(ParameterInfo param)
{
    return param.IsDefined(typeof(ParamArrayAttribute), false);
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top