static ClassicExpressionPrinter() { printerLookup = new ClassicExpressionPrinterType { [typeof(DoubleExpression)] = (e, sb) => { var doubleExpression = (DoubleExpression)e; sb.Append(doubleExpression.Value); }, [typeof(AdditionExpression)] = (e, sb) => { var additionExpression = (AdditionExpression)e; sb.Append("("); Print_ConditionalMethod(additionExpression.Left, sb); sb.Append(" + "); Print_ConditionalMethod(additionExpression.Right, sb); sb.Append(")"); }, }; }
public static void Print_LookupMethod(Expression expression, StringBuilder sb) { printerLookup[expression.GetType()](expression, sb); }