public void Print(AdditionalExpression ae, StringBuilder sb) { sb.Append("("); Print((dynamic)ae.Left, sb); sb.Append("+"); Print((dynamic)ae.Right, sb); sb.Append(")"); }
static void Main(string[] args) { var e = new AdditionalExpression( new DoubleExpression(3), new AdditionalExpression( new DoubleExpression(4), new DoubleExpression(5))); var sb = new StringBuilder(); var ep = new ExpressionPrinter(); ep.Print((dynamic)e, sb); Console.WriteLine(sb.ToString()); Console.ReadKey(); }