Výrazy lambda boli prvýkrát predstavené v .NET 3.5, súčasne s sprístupnením jazykového integrovaného dotazu (LINQ). Lambda výrazy sú ako anonymné metódy, ale s oveľa väčšou flexibilitou. Ak používate výraz lambda, nemusíte zadávať typ vstupu. Preto výraz lambda poskytuje kratší a čistejší spôsob predstavovania anonymných metód.
V tomto článku sa pozrieme na to, ako môžeme používať výrazy lambda v C #. Ak chcete pracovať s príkladmi kódu uvedenými v tomto článku, mali by ste mať vo svojom systéme nainštalovanú aplikáciu Visual Studio 2019. Ak ešte nemáte kópiu, môžete si tu stiahnuť Visual Studio 2019.
Vytvorte projekt konzolovej aplikácie v Visual Studio
Najprv si vytvoríme projekt konzolovej aplikácie .NET Core v Visual Studio. Za predpokladu, že je vo vašom systéme nainštalované Visual Studio 2019, vytvorte nový projekt konzolovej aplikácie .NET Core v Visual Studio podľa pokynov uvedených nižšie.
- Spustite Visual Studio IDE.
- Kliknite na „Vytvoriť nový projekt“.
- V okne „Vytvoriť nový projekt“ vyberte zo zobrazeného zoznamu šablón „Console App (.NET Core)“.
- Kliknite na Ďalej.
- V nasledujúcom okne „Konfigurácia nového projektu“ zadajte názov a umiestnenie nového projektu.
- Kliknite na tlačidlo Vytvoriť.
Výsledkom týchto krokov by mal byť nový projekt konzolovej aplikácie .NET Core v Visual Studio 2019. Tento projekt použijeme na prácu s výrazmi lambda v jazyku C # v ďalších častiach tohto článku.
Anatómia lambda výrazu
Výraz lambda je v podstate metóda, ktorá nemá deklaráciu. Inými slovami, výraz lambda je metóda, ktorá nemá špecifikátor prístupu ani názov. Výraz lambda možno rozdeliť na dve časti - ľavú časť a pravú časť. Ľavá časť slúži na zadávanie a pravá časť na písanie výrazov.
Tu je syntax pre použitie výrazov lambda v C #.
(Vstupné parametre) => Výraz alebo blok príkazov
Môžete mať dva typy výrazov lambda, výraz lambda a výraz lambda. Výraz lambda sa skladá zo vstupu na ľavej strane a výrazu na pravej strane, ako je uvedené nižšie.
vstup => výraz;
Príkaz lambda sa skladá zo vstupu na ľavej strane a množiny príkazov na pravej strane, ako je uvedené nižšie.
vstup => {vyjadrenia};
Príklady výrazov lambda v C #
Písanie výrazu lambda je jednoduché - stačí odstrániť delegované kľúčové slovo a typ parametra z anonymnej metódy. Zvážte nasledujúcu anonymnú metódu, ktorá používa kľúčové slovo delegáta, ako aj typ parametra.
delegát (Autor a) {návrat a.IsActive && a.NoOfBooksAuthored> 10; }
Vyššie uvedené vyhlásenie je možné previesť na výraz lambda, ako je uvedené v útržku kódu uvedenom nižšie.
(a) => {a.IsActive && a.NoOfBooksAuthored> 10; }
Vo vyššie uvedenom vyhlásení a
je parameter a =>
je operátor lambda. Nasledujúci výrok je výraz.
a.IsActive && a.NoOfBooksAuthored> 10;
Tu je ďalší príklad výrazu lambda, ktorý zobrazuje nepárne čísla medzi 1 a 9 v okne konzoly.
Celé čísla zoznamu = nový Zoznam {1, 2, 3, 4, 5, 6, 7, 8, 9};foreach (int num v celých číslach. Kam (n => n% 2 == 1). ToList ())
{
Console.WriteLine (num);
}
Lambda výrazy s parametrami a bez nich
Výrazy lambda môžu byť bez parametrov alebo môžu mať jeden alebo viac parametrov. Nasledujúci úryvok kódu ilustruje výraz lambda, ktorý nemá žiadne parametre.
() => Console.WriteLine ("Toto je výraz lambda bez akýchkoľvek parametrov");
Lambda výrazy môžu mať tiež jeden alebo viac parametrov. Nasledujúci úryvok kódu ilustruje, ako môžete odovzdať jeden parameter výrazu lambda.
(a, numberOfBooksAuthored) => a.NoOfBooksAuthored> = numberOfBooksAuthored;
Môžete tiež určiť typ parametra vo výraze lambda, ako je uvedené v útržku kódu uvedenom nižšie.
(a, int numberOfBooksAuthored) => a.NoOfBooksAuthored> = numberOfBooksAuthored;
Vo výraze lambda môžete dokonca určiť viac príkazov pomocou zložených zátvoriek. Toto je zobrazené v nasledujúcom útržku kódu.
(a, 10) =>{
Console.WriteLine („Toto je príklad výrazu lambda
s viacerými výrokmi “);
vrátiť a.NoOfBooksAuthored> = 10;
}
Vyhlásenie lambdas v C #
Príkaz lambda používa syntax totožnú s výrazom lambdas. Rozdiel je v tom, že namiesto výrazu napravo od operátora má príkaz lambda blok kódu, ktorý obsahuje jeden alebo viac príkazov.
Nasledujúci úryvok kódu ilustruje, ako môžete využiť príkaz lambda na zobrazenie párnych čísel medzi 1 a 9 v okne konzoly.
int [] celé čísla = nové [] {1, 2, 3, 4, 5, 6, 7, 8, 9};foreach (int i v celých číslach. Kde (x =>
{
ak (x% 2 == 0)
návrat pravdivý;
návrat nepravdivý;
}
))
Console.WriteLine (i);
Výrazy lambda sú skvelou funkciou v .NET a .NET Core, ktoré poskytujú kratší spôsob reprezentácie anonymných metód. Výrazy lambda môžu mať nulové parametre alebo jeden alebo viac. Delegátom Func, Action alebo Predicate môžete dokonca priradiť výrazy lambda. V budúcom článku tu preskúmame tieto a ďalšie funkcie výrazov lambda. Preskúmame tiež, ako môžeme pracovať s výrazmi lambda a LINQ, ako aj s asynchrónnymi lambdami.
Ako urobiť viac v C #:
- Kedy použiť abstraktné rozhranie vs. rozhranie v C #
- Ako pracovať s AutoMapperom v C #
- Ako používať výrazy lambda v C #
- Ako pracovať s delegátmi Action, Func a Predicate v C #
- Ako pracovať s delegátmi v C #
- Ako implementovať jednoduchý záznamník v C #
- Ako pracovať s atribútmi v C #
- Ako pracovať s log4net v C #
- Ako implementovať vzor návrhu úložiska v C #
- Ako pracovať s odrazom v C #
- Ako pracovať so súborovým systémom v C #
- Ako vykonať lenivú inicializáciu v C #
- Ako pracovať s MSMQ v C #
- Ako pracovať s metódami rozšírenia v C #
- Ako na nás výrazy lambda v C #
- Kedy použiť volatile kľúčové slovo v C #
- Ako používať kľúčové slovo výťažku v C #
- Ako implementovať polymorfizmus v C #
- Ako zostaviť vlastný plánovač úloh v C #
- Ako pracovať s RabbitMQ v C #
- Ako pracovať s n-ticí v C #
- Skúmanie virtuálnych a abstraktných metód v C #