Cartea este proiectat pentru o gamă largă de cititorii interesați de programare în C # .Vvedite scurt rezumat aici
Book: C # 4.0: Un ghid complet
arbori de expresie
Un alt mijloc asociat cu LINQ, este un arbore de expresie care reprezintă expresia lambda sub formă de date. Aceasta înseamnă că expresia foarte lambda nu se poate face, dar poate fi convertit într-o formă executabilă. arbori de expresie sunt încapsulate în System.Linq.Expressions.Expression clasă
pur și simplu apel metoda Compile () pentru a obține o formă executabilă a unui arbore de expresie. definită în clasa de expresie. Această metodă returnează o referință care poate fi atribuit delegat pentru executarea ulterioară. Un tip delegat poate fi declarată privată sau un tip delegat predefinit în func spațiul de nume de sistem. Două forme FUNC delegare a atribuțiilor menționate anterior atunci când se analizează metodele de solicitare, dar există și alte forme de ea.
Expresia arbore are următoarea restricție importantă: ele pot reprezenta numai o singură expresie lambda. Cu ajutorul lor, nu puteți trimite un bloc de expresii lambda.
Mai jos este un program de probă care demonstrează utilizarea unui copac expresie particulară. În acest program, creați mai întâi un arbore de expresie ale cărei date reprezintă o metodă care determină dacă unul este un factor întreg al celuilalt. Apoi expresia copac este compilat în cod executabil. În cele din urmă, executarea codului compilat este prezentat în program.
Asta este ceea ce rezultatele în punerea în aplicare a acestui program.
Numărul 5 este un factor de 10.
Numărul 7 nu este un factor de 10.
Acest program de exemplu demonstrează utilizarea a două etape principale ale unui arbore de expresie. În primul rând, se creează un arbore de expresie utilizând următoarea declarație.
expresie
Această afirmație este construit reprezentarea lambda expresii în memorie. Așa cum sa explicat mai sus, această prezentare este disponibil pe link-ul apropriat IsFactorExp delegat. Iar în următoarea declarație expresiile date sunt convertite în cod executabil.
După ce faci acest operator delegat IsFactorExp poate fi numit pentru a determina dacă un singur număr întreg de multiplicare altul.
Rețineți, de asemenea, că