Skip to content

Commit 4d9970e

Browse files
author
Sébastien Geiser
committed
ForEach OK
1 parent 0826a1e commit 4d9970e

File tree

1 file changed

+95
-0
lines changed

1 file changed

+95
-0
lines changed

CodingSeb.ExpressionEvaluator/ExpressionEvaluator.cs

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2928,6 +2928,16 @@ protected virtual MethodInfo GetRealMethod(ref Type type, ref object obj, string
29282928
.MakeGenericMethod(parameterType.GetGenericArguments());
29292929
modifiedArgs[a] = Delegate.CreateDelegate(parameterType, de, encapsMethod);
29302930
}
2931+
else if(paramTypeName.StartsWith("Action")
2932+
&& modifiedArgs[a] is InternalDelegate)
2933+
{
2934+
InternalDelegate led = modifiedArgs[a] as InternalDelegate;
2935+
DelegateEncaps de = new DelegateEncaps(led);
2936+
MethodInfo encapsMethod = de.GetType()
2937+
.GetMethod($"Action{parameterType.GetGenericArguments().Length}")
2938+
.MakeGenericMethod(parameterType.GetGenericArguments());
2939+
modifiedArgs[a] = Delegate.CreateDelegate(parameterType, de, encapsMethod);
2940+
}
29312941
else if (paramTypeName.StartsWith("Converter")
29322942
&& modifiedArgs[a] is InternalDelegate)
29332943
{
@@ -3396,6 +3406,91 @@ public object CallFluidMethod(params object[] args)
33963406
return target;
33973407
}
33983408

3409+
public void Action0()
3410+
{
3411+
lambda();
3412+
}
3413+
3414+
public void Action1<T1>(T1 arg1)
3415+
{
3416+
lambda(arg1);
3417+
}
3418+
3419+
public void Action2<T1, T2>(T1 arg1, T2 arg2)
3420+
{
3421+
lambda(arg1, arg2);
3422+
}
3423+
3424+
public void Action3<T1, T2, T3>(T1 arg1, T2 arg2, T3 arg3)
3425+
{
3426+
lambda(arg1, arg2, arg3);
3427+
}
3428+
3429+
public void Action4<T1, T2, T3, T4>(T1 arg1, T2 arg2, T3 arg3, T4 arg4)
3430+
{
3431+
lambda(arg1, arg2, arg3, arg4);
3432+
}
3433+
3434+
public void Action5<T1, T2, T3, T4, T5>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5)
3435+
{
3436+
lambda(arg1, arg2, arg3, arg4, arg5);
3437+
}
3438+
3439+
public void Action6<T1, T2, T3, T4, T5, T6>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6)
3440+
{
3441+
lambda(arg1, arg2, arg3, arg4, arg5, arg6);
3442+
}
3443+
3444+
public void Action7<T1, T2, T3, T4, T5, T6, T7>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7)
3445+
{
3446+
lambda(arg1, arg2, arg3, arg4, arg5, arg6, arg7);
3447+
}
3448+
3449+
public void Action8<T1, T2, T3, T4, T5, T6, T7, T8>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8)
3450+
{
3451+
lambda(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
3452+
}
3453+
3454+
public void Action9<T1, T2, T3, T4, T5, T6, T7, T8, T9>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9)
3455+
{
3456+
lambda(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
3457+
}
3458+
3459+
public void Action10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10)
3460+
{
3461+
lambda(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10);
3462+
}
3463+
3464+
public void Action11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11)
3465+
{
3466+
lambda(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11);
3467+
}
3468+
3469+
public void Action12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12)
3470+
{
3471+
lambda(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12);
3472+
}
3473+
3474+
public void Action13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13)
3475+
{
3476+
lambda(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13);
3477+
}
3478+
3479+
public void Action14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14)
3480+
{
3481+
lambda(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14);
3482+
}
3483+
3484+
public void Action15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14, T15 arg15)
3485+
{
3486+
lambda(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15);
3487+
}
3488+
3489+
public void Action16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14, T15 arg15, T16 arg16)
3490+
{
3491+
lambda(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16);
3492+
}
3493+
33993494
public TResult Func0<TResult>()
34003495
{
34013496
return (TResult)lambda();

0 commit comments

Comments
 (0)