Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
Expression1.cs
Go to the documentation of this file.
4
6
7internal sealed class Expression1<TDelegate> : Expression<TDelegate>
8{
9 private object _par0;
10
11 internal override int ParameterCount => 1;
12
14 : base(body)
15 {
16 _par0 = par0;
17 }
18
19 internal override ParameterExpression GetParameter(int index)
20 {
21 if (index == 0)
22 {
23 return ExpressionUtils.ReturnObject<ParameterExpression>(_par0);
24 }
25 throw Error.ArgumentOutOfRange("index");
26 }
27
28 internal override bool SameParameters(ICollection<ParameterExpression> parameters)
29 {
30 if (parameters != null && parameters.Count == 1)
31 {
33 {
34 enumerator.MoveNext();
35 return enumerator.Current == ExpressionUtils.ReturnObject<ParameterExpression>(_par0);
36 }
37 }
38 return false;
39 }
40
45
46 internal override Expression<TDelegate> Rewrite(Expression body, ParameterExpression[] parameters)
47 {
48 if (parameters != null)
49 {
50 return Expression.Lambda<TDelegate>(body, parameters);
51 }
53 }
54}
static ReadOnlyCollection< ParameterExpression > ReturnReadOnly(IParameterProvider provider, ref object collection)
static Exception ArgumentOutOfRange(string paramName)
Definition Error.cs:818
override ReadOnlyCollection< ParameterExpression > GetOrMakeParameters()
override Expression< TDelegate > Rewrite(Expression body, ParameterExpression[] parameters)
override ParameterExpression GetParameter(int index)
Expression1(Expression body, ParameterExpression par0)
override bool SameParameters(ICollection< ParameterExpression > parameters)
static LambdaExpression Lambda(Expression body, params ParameterExpression[]? parameters)