This post was originally published on Coding Glamour.

Eerder gepubliceerd als Expression Trees in .NET Magazine Q1 2010. Volledige artikel (PDF)

De in het .Net framework 3.5 geïntroduceerde ‘expression trees’, zijn absoluut het Microsoft equivalent van DeLonghi’s famous espresso: goed gedoseerd levert het een ongelooflijke boost, maar een kopje teveel en je stuitert alle kanten op.

In dit artikel gaan we in op de vraag wat expression trees zijn en hoe ze delen van je code tot honderd keer sneller kunnen maken. Laten we bij het begin beginnen: wat zijn expressions eigenlijk? Wellicht het meest eenvoudige stuk code demonstreert dit het beste:

1 + 2;


Dit is een expression pur sang. Het is namelijk: ‘An instruction to execute something that will return a value. ’Uiteraard kunnen we deze expression ook wat moeilijker maken, door twee variabelen te gebruiken:

a + b;


Omdat we soms de expression niet direct willen uitvoeren, kunnen we deze expression ook in een delegate stoppen. Een delegate is namelijk niets anders dan een expression, een uitvoerbaar stuk code, in een variabele:

PlusDelegate plus = delegate(int a, int b) { return a + b; };


Volledige artikel (PDF)