Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
InvocationExpression5.cs
Go to the documentation of this file.
3
5
7{
8 private object _arg0;
9
10 private readonly Expression _arg1;
11
12 private readonly Expression _arg2;
13
14 private readonly Expression _arg3;
15
16 private readonly Expression _arg4;
17
18 public override int ArgumentCount => 5;
19
20 public InvocationExpression5(Expression lambda, Type returnType, Expression arg0, Expression arg1, Expression arg2, Expression arg3, Expression arg4)
21 : base(lambda, returnType)
22 {
23 _arg0 = arg0;
24 _arg1 = arg1;
25 _arg2 = arg2;
26 _arg3 = arg3;
27 _arg4 = arg4;
28 }
29
31 {
32 return ExpressionUtils.ReturnReadOnly(this, ref _arg0);
33 }
34
35 public override Expression GetArgument(int index)
36 {
37 return index switch
38 {
39 0 => ExpressionUtils.ReturnObject<Expression>(_arg0),
40 1 => _arg1,
41 2 => _arg2,
42 3 => _arg3,
43 4 => _arg4,
44 _ => throw new ArgumentOutOfRangeException("index"),
45 };
46 }
47
48 internal override InvocationExpression Rewrite(Expression lambda, Expression[] arguments)
49 {
50 if (arguments != null)
51 {
52 return System.Linq.Expressions.Expression.Invoke(lambda, arguments[0], arguments[1], arguments[2], arguments[3], arguments[4]);
53 }
55 }
56}
static ReadOnlyCollection< ParameterExpression > ReturnReadOnly(IParameterProvider provider, ref object collection)
static InvocationExpression Invoke(Expression expression)
override ReadOnlyCollection< Expression > GetOrMakeArguments()
override InvocationExpression Rewrite(Expression lambda, Expression[] arguments)
InvocationExpression5(Expression lambda, Type returnType, Expression arg0, Expression arg1, Expression arg2, Expression arg3, Expression arg4)