Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ MakeDynamic() [1/7]

static DynamicExpression System.Linq.Expressions.ExpressionExtension.MakeDynamic ( CallSiteBinder binder,
Type returnType,
ReadOnlyCollection< Expression > arguments )
inlinestaticprivate

Definition at line 189 of file ExpressionExtension.cs.

190 {
192 int count = arguments.Count;
193 for (int i = 0; i < count; i++)
194 {
196 ValidateDynamicArgument(arg, "arguments", i);
197 }
199 return count switch
200 {
201 1 => DynamicExpression.Make(returnType, delegateType, binder, arguments[0]),
202 2 => DynamicExpression.Make(returnType, delegateType, binder, arguments[0], arguments[1]),
203 3 => DynamicExpression.Make(returnType, delegateType, binder, arguments[0], arguments[1], arguments[2]),
204 4 => DynamicExpression.Make(returnType, delegateType, binder, arguments[0], arguments[1], arguments[2], arguments[3]),
205 _ => DynamicExpression.Make(returnType, delegateType, binder, arguments),
206 };
207 }
static void RequiresNotNull(object value, string paramName)
static Type MakeCallSiteDelegate(ReadOnlyCollection< Expression > types, Type returnType)
static void ValidateDynamicArgument(Expression arg, string paramName)

References System.Linq.count, System.Collections.Generic.Dictionary< TKey, TValue >.Count, System.Linq.Expressions.DynamicExpression.Make(), System.Linq.Expressions.Compiler.DelegateHelpers.MakeCallSiteDelegate(), System.Dynamic.Utils.ContractUtils.RequiresNotNull(), and System.Linq.Expressions.ExpressionExtension.ValidateDynamicArgument().