Stromy výrazů
Pokud jste použili LINQ, máte zkušenosti s bohatou knihovnou, ve které jsou typy Func součástí sady rozhraní API. (Pokud LINQ ještě nevíte, budete si pravděpodobně chtít přečíst kurz LINQ a článek o výrazech lambda před tímto výrazem.) Stromy výrazů poskytují bohatší interakci s argumenty, které jsou funkcemi.
Při vytváření dotazů LINQ píšete argumenty funkce, obvykle pomocí výrazů lambda. V typickém dotazu LINQ jsou tyto argumenty funkce transformovány na delegáta, který kompilátor vytvoří.
Pokud chcete mít bohatší interakci, musíte použít stromy výrazů. Stromy výrazů představují kód jako strukturu, kterou můžete prozkoumat, upravit nebo spustit. Tyto nástroje vám poskytují možnost manipulovat s kódem během běhu. Můžete napsat kód, který prozkoumá spuštěné algoritmy nebo vloží nové funkce. V pokročilejších scénářích můžete upravit běžící algoritmy a dokonce překládat výrazy jazyka C# do jiné formy pro provádění v jiném prostředí.
Pravděpodobně jste už napsali kód, který používá stromy výrazů. Entity Framework LINQ API přijímají jako argumenty vzoru výrazů LINQ stromy výrazů. To umožňuje Entity Framework přeložit dotaz, který jste napsali v jazyce C# do SQL který se spouští v databázovém stroji. Dalším příkladem je Moq, což je oblíbená modelová rozhraní pro .NET.
Zbývající části tohoto kurzu prozkoumá, co jsou stromy výrazů, prozkoumá třídy architektury, které podporují stromy výrazů, a ukáže vám, jak pracovat se stromy výrazů. Dozvíte se, jak číst stromy výrazů, jak vytvářet stromy výrazů, jak vytvářet upravené stromy výrazů a jak spustit kód reprezentovaný stromy výrazů. Po přečtení budete připraveni tyto struktury použít k vytváření bohatých adaptivních algoritmů.
-
Porozuměli jste struktuře a konceptům stromů výrazů.
Typy architektur podporující stromy výrazů
Seznamte se se strukturami a třídami, které definují stromy výrazů a manipulují s nimi.
-
Zjistěte, jak převést strom výrazů reprezentovaný jako výraz lambda na delegáta a spustit výsledný delegát.
-
Zjistěte, jak procházet a zkoumat stromy výrazů, abyste pochopili, jaký kód strom výrazů představuje.
-
Naučte se vytvářet uzly pro strom výrazů a sestavovat stromy výrazů.
-
Zjistěte, jak vytvořit upravenou kopii stromu výrazů nebo přeložit strom výrazů do jiného formátu.
-
Zkontrolujte informace o stromech výrazů.