public override string ToString() { string receiver = Receiver.ToString(); if (!(Receiver.NodeType == ExpressionType.MemberAccess || Receiver.NodeType == ExpressionType.Call || Receiver.NodeType == ExpressionType.Parameter)) { receiver = "(" + receiver + ")"; } var access = AccessExpression.ToString(); var start = this.AccessParameter.ToString(); if (access.StartsWith(start + ".") || access.StartsWith(start + "[")) { return(receiver + "?" + access.Substring(start.Length)); } return(receiver + "?(" + this.AccessParameter.ToString() + " => " + access + ")"); }
private static void WriteAccessExpression(AccessExpression expression, StreamWriter writer) { writer.Write(expression.fullNameFlat); }
protected virtual Expression VisitAccess(AccessExpression node) { Visit(node.Container); node.Arguments.ForEach(arg => Visit(arg.Value)); return(node); }