The best thing about expression trees isn't that it lets you declare a method like Func<Func<int>, int> = ... (or whatever), but that you can inspect (and modify) the expression tree at runtime. This is what powers LINQ, and the 'static reflection' used by fluent APIs like Fluent nHibernate.
Comments
The best thing about expression trees isn't that it lets you declare a method like Func<Func<int>, int> = ... (or whatever), but that you can inspect (and modify) the expression tree at runtime. This is what powers LINQ, and the 'static reflection' used by fluent APIs like Fluent nHibernate.