Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Linq.Expressions;
- namespace ExpressionTreeTest
- {
- class Program
- {
- static void Main(string[] args)
- {
- var result = Expression.Parameter(typeof(int), "result");
- var label = Expression.Label(typeof(int));
- var writeStringInfo = typeof(Console).GetMethod("WriteLine", new [] { typeof(int) });
- var block = Expression.Block(
- new[] { result },
- Expression.Assign(result, Expression.Constant(0)),
- Expression.Loop(
- Expression.IfThenElse(
- Expression.LessThan(result, Expression.Constant(100)),
- Expression.Block(
- Expression.Call(null, writeStringInfo, result),
- Expression.PostIncrementAssign(result)
- ),
- Expression.Break(label, result)
- ),
- label
- )
- );
- var action = Expression.Lambda<Action>(block).Compile();
- action();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment