using System.Linq.Expressions;
using System.Collections;
using System.Collections.Generic;
public static void Main()
Console.WriteLine("****************** C# Equivalent Output **************************\n\n");
Console.WriteLine(myInt);
Console.WriteLine("\n\n***************** Expression Tree Output **************************\n\n");
ParameterExpression myIntVariableExpr = Expression.Variable(typeof(int), "myInt");
BlockExpression addAssignExpr = Expression.Block(
new ParameterExpression[] { myIntVariableExpr },
Expression.Assign(myIntVariableExpr, Expression.Constant(12)),
Expression.MultiplyAssign(
Console.WriteLine(Expression.Lambda<Func<int>>(addAssignExpr).Compile()());