我有以下方法:
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();
}
在我看来,这是臃肿和过于复杂。有没有办法把这个方法变成一两行代码来做同样的事情?可能使用 Lambda 或 LINQ。
之所以我认为它如此臃肿,是因为你只能从一个parameterInfo数组中获取参数的值,而不是每个parameterInfo(parameterInfo没有GetValue)。必须有更好的方法来做到这一点。
编辑
有很多很棒的答案,每个人都有效,所以谢谢大家。