예제 #1
0
 public void Print(AdditionExpression4 ae, StringBuilder sb)
 {
     // Dynamic incurs a massive performance hit.
     // May not be practical in most real world scenarios
     sb.Append("(");
     Print((dynamic)ae.Left, sb);
     sb.Append("+");
     Print((dynamic)ae.Right, sb);
     sb.Append(")");
 }
예제 #2
0
        // change to Main to run.
        public static void none(string[] args)
        {
            Expression4 e = new AdditionExpression4(
                left: new DoubleExpression4(1),
                right: new AdditionExpression4(
                    left: new DoubleExpression4(2),
                    right: new DoubleExpression4(3)));
            var ep = new ExpressionPrinter3();
            var sb = new StringBuilder();

            ep.Print((dynamic)e, sb);
            Console.WriteLine(sb);
        }