私は次の方法を持っています:
private static object[] GenerateParameters(MethodBase executingMethod)
{
var parameterInfoList = MethodBase.GetCurrentMethod().GetParameters();
var parameterObjectList = new List<object>();
for (var i = 0; i < parameterInfoList.Count(); i++)
{
parameterObjectList.Add(parameterInfoList.GetValue(i));
}
return parameterObjectList.ToArray();
}
肥大化していて複雑すぎるように思えます。このメソッドを同じことを行う1行または2行のコードに変換する方法はありますか?おそらくLambdaまたはLINQを使用しています。
それが非常に肥大化していると思う理由は、各parameterInfoではなくparameterInfo配列からのみパラメーターの値を取得できるためです(parameterInfoにはGetValueがありません)。これを行うには、より良い方法が必要です。
編集
たくさんの素晴らしい答えがあり、それぞれがうまくいきましたので、皆さんに感謝します。