Basic Expression Tree Example

This example demonstrates how to create a simple expression like x => x + 2 dynamically.

using System;
using System.Linq.Expressions;

class Program
{
    static void Main()
    {
        // Parameter: x
        ParameterExpression param = Expression.Parameter(typeof(int), "x");

        // Constant: 2
        ConstantExpression constant = Expression.Constant(2, typeof(int));

        // Add operation: x + 2
        BinaryExpression addExpression = Expression.Add(param, constant);

        // Lambda: x => x + 2
        var lambda = Expression.Lambda<Func<int, int>>(addExpression, param);

        // Compile the lambda
        var compiledFunc = lambda.Compile();

        // Invoke the lambda
        int result = compiledFunc(5);
        Console.WriteLine($"Result of x + 2 when x = 5: {result}"); // Output: 7
    }
}