System.Linq.Expressions.ExpressionExtension.MakeDynamic C# (CSharp) Метод

MakeDynamic() приватный статический Метод

private static MakeDynamic ( System.Runtime.CompilerServices.CallSiteBinder binder, Type returnType, ReadOnlyCollection args ) : DynamicExpression
binder System.Runtime.CompilerServices.CallSiteBinder
returnType System.Type
args ReadOnlyCollection
Результат DynamicExpression
        private static DynamicExpression MakeDynamic(CallSiteBinder binder, Type returnType, ReadOnlyCollection<Expression> args)
        {
            ContractUtils.RequiresNotNull(binder, nameof(binder));

            for (int i = 0; i < args.Count; i++)
            {
                Expression arg = args[i];

                ValidateDynamicArgument(arg, "arguments", i);
            }

            Type delegateType = DelegateHelpers.MakeCallSiteDelegate(args, returnType);

            // Since we made a delegate with argument types that exactly match,
            // we can skip delegate and argument validation

            switch (args.Count)
            {
                case 1: return DynamicExpression.Make(returnType, delegateType, binder, args[0]);
                case 2: return DynamicExpression.Make(returnType, delegateType, binder, args[0], args[1]);
                case 3: return DynamicExpression.Make(returnType, delegateType, binder, args[0], args[1], args[2]);
                case 4: return DynamicExpression.Make(returnType, delegateType, binder, args[0], args[1], args[2], args[3]);
                default: return DynamicExpression.Make(returnType, delegateType, binder, args);
            }
        }

Same methods

ExpressionExtension::MakeDynamic ( Type delegateType, System.Runtime.CompilerServices.CallSiteBinder binder ) : DynamicExpression
ExpressionExtension::MakeDynamic ( Type delegateType, System.Runtime.CompilerServices.CallSiteBinder binder, Expression arg0 ) : DynamicExpression
ExpressionExtension::MakeDynamic ( Type delegateType, System.Runtime.CompilerServices.CallSiteBinder binder, Expression arg0, Expression arg1 ) : DynamicExpression
ExpressionExtension::MakeDynamic ( Type delegateType, System.Runtime.CompilerServices.CallSiteBinder binder, Expression arg0, Expression arg1, Expression arg2 ) : DynamicExpression
ExpressionExtension::MakeDynamic ( Type delegateType, System.Runtime.CompilerServices.CallSiteBinder binder, Expression arg0, Expression arg1, Expression arg2, Expression arg3 ) : DynamicExpression
ExpressionExtension::MakeDynamic ( Type delegateType, System.Runtime.CompilerServices.CallSiteBinder binder, IEnumerable arguments ) : DynamicExpression