Skip to content

Commit

Permalink
Update LambdaParameterWrapper.cs
Browse files Browse the repository at this point in the history
  • Loading branch information
hzy-6 committed Jan 27, 2024
1 parent b1a503e commit 4702aee
Showing 1 changed file with 11 additions and 9 deletions.
20 changes: 11 additions & 9 deletions src/NReco.LambdaParser/Linq/LambdaParameterWrapper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -105,15 +105,17 @@ internal sealed class LambdaParameterWrapper : IComparable, ILambdaValue {

var delegParams = deleg.GetMethodInfo().GetParameters();

// If it is a parameter and the parameter type is object (如果是一个参数 并且 参数类型是 object)
var isParams = delegParams.Length == 1 && delegParams[0].ParameterType == typeof(object);
if (isParams)
{
var resolvedArgList = args
.Select(w => w is LambdaParameterWrapper ? ((LambdaParameterWrapper)w).Value : w)
.ToArray();
return new LambdaParameterWrapper(deleg.DynamicInvoke((object)resolvedArgList), Ctx);
}
// If it is a parameter and the parameter type is object (如果是一个参数 并且 参数类型是 object)
var isParams = delegParams.Length == 1 &&
delegParams[0].ParameterType == typeof(object) &&
delegParams.Length != args.Length;
if (isParams)
{
var resolvedArgList = args
.Select(w => w is LambdaParameterWrapper ? ((LambdaParameterWrapper)w).Value : w)
.ToArray();
return new LambdaParameterWrapper(deleg.DynamicInvoke((object)resolvedArgList), Ctx);
}

if (delegParams.Length != args.Length)
throw new TargetParameterCountException(
Expand Down

0 comments on commit 4702aee

Please sign in to comment.