Ejemplo n.º 1
0
        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 + ")");
        }
Ejemplo n.º 2
0
 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);
 }