Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
MemberExpression.cs
Go to the documentation of this file.
5
7
8[DebuggerTypeProxy(typeof(MemberExpressionProxy))]
10{
12
13 public Expression? Expression { get; }
14
15 public sealed override ExpressionType NodeType => ExpressionType.MemberAccess;
16
17 internal MemberExpression(Expression expression)
18 {
19 Expression = expression;
20 }
21
22 internal static PropertyExpression Make(Expression expression, PropertyInfo property)
23 {
24 return new PropertyExpression(expression, property);
25 }
26
27 internal static FieldExpression Make(Expression expression, FieldInfo field)
28 {
29 return new FieldExpression(expression, field);
30 }
31
32 internal static MemberExpression Make(Expression expression, MemberInfo member)
33 {
34 FieldInfo fieldInfo = member as FieldInfo;
35 if (!(fieldInfo == null))
36 {
37 return Make(expression, fieldInfo);
38 }
39 return Make(expression, (PropertyInfo)member);
40 }
41
42 [ExcludeFromCodeCoverage(Justification = "Unreachable")]
43 internal virtual MemberInfo GetMember()
44 {
46 }
47
48 protected internal override Expression Accept(ExpressionVisitor visitor)
49 {
50 return visitor.VisitMember(this);
51 }
52
54 {
55 if (expression == Expression)
56 {
57 return this;
58 }
60 }
61}
virtual Expression VisitMember(MemberExpression node)
static MemberExpression MakeMemberAccess(Expression? expression, MemberInfo member)
static FieldExpression Make(Expression expression, FieldInfo field)
static PropertyExpression Make(Expression expression, PropertyInfo property)
MemberExpression Update(Expression? expression)
override Expression Accept(ExpressionVisitor visitor)
static MemberExpression Make(Expression expression, MemberInfo member)