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

◆ MakeDeferredSiteDelegate()

static Type System.Linq.Expressions.Compiler.DelegateHelpers.MakeDeferredSiteDelegate ( DynamicMetaObject[] args,
Type returnType )
inlinestaticpackage

Definition at line 47 of file DelegateHelpers.cs.

48 {
50 {
54 {
55 Type type = dynamicMetaObject.Expression.Type;
57 {
58 type = type.MakeByRefType();
59 }
61 }
63 if (delegateCache.DelegateType == null)
64 {
65 Type[] array = new Type[args.Length + 2];
66 array[0] = typeof(CallSite);
67 array[^1] = returnType;
68 for (int j = 0; j < args.Length; j++)
69 {
71 Type type2 = dynamicMetaObject2.Expression.Type;
73 {
74 type2 = type2.MakeByRefType();
75 }
76 array[j + 1] = type2;
77 }
78 delegateCache.DelegateType = MakeNewDelegate(array);
79 }
80 return delegateCache.DelegateType;
81 }
82 }
static TypeInfo NextTypeInfo(Type initialArg)

References System.Linq.Expressions.Compiler.DelegateHelpers._DelegateCache, System.array, System.Reflection.Emit.IsByRef, System.Linq.Expressions.Compiler.DelegateHelpers.MakeNewDelegate(), System.Linq.Expressions.Compiler.DelegateHelpers.NextTypeInfo(), and System.type.

Referenced by System.Dynamic.DynamicMetaObjectBinder.MakeDeferred().