Wat is Lambda-expressie en anonieme functie in C#

Wat Is Lambda Expressie En Anonieme Functie In C



Lambda-expressies en anonieme functies zijn twee krachtige concepten in C# waarmee ontwikkelaars beknopte, efficiënte en gemakkelijk leesbare code kunnen schrijven. Met deze functies kunnen ontwikkelaars inline functies schrijven zonder dat ze een aparte methode hoeven te declareren. Dit artikel bespreekt wat lambda-expressies en anonieme functies zijn in C# en geeft voor elk afzonderlijke voorbeelden.

Wat is Lambda-expressie in C#

Een Lambda-expressie is een korte, beknopte manier om een ​​methode inline te definiëren, zonder dat een aparte methode hoeft te worden gedeclareerd. Het is in wezen een anonieme methode die aan een variabele kan worden toegewezen of als parameter kan worden gebruikt. Lambda-expressies in C# worden weergegeven door de '=>'-operator, die wordt gelezen als 'goes to'-operator:

De syntaxis voor een Lambda-expressie is:







( parameter ) => uitdrukking

Waarbij de parameter de invoer voor de functie is en de expressie de uitvoer van de functie is. Het volgende voorbeeld demonstreert het gebruik van een Lambda-uitdrukking om het kwadraat van een getal te berekenen:



int vierkant = ( X ) => X * X ;

In dit voorbeeld neemt de Lambda-expressie een invoerparameter x en retourneert het kwadraat van x. Het resultaat van de Lambda-expressie wordt toegewezen aan de variabele square en hier is de volledige code voor dit voorbeeld:



systeem gebruiken ;

klasse programma {

statisch leegte Voornaamst ( snaar [ ] argumenten ) {

Func < int , int > vierkant = X => X * X ;

Troosten. Schrijf lijn ( vierkant ( 6 ) ) ;

}

}

In dit voorbeeld definiëren we een Lambda-expressie die een geheeltallige invoerparameter x neemt en het kwadraat retourneert. Het type Func definieert dat de Lambda-expressie een integer-invoerparameter gebruikt en een integer-waarde retourneert. We kennen deze Lambda-uitdrukking toe aan de vierkante variabele, en dan noemen we het met de invoerwaarde van 6 en de uitvoer zal 36 zijn.





Wat is anonieme functie C#

De anonieme functie is een functie zonder naam en is een soort Lambda-expressie die inline wordt gedefinieerd en aangeroepen, zonder een aparte methode te declareren. Anonieme functies in C# worden vertegenwoordigd door het sleutelwoord 'delegate', dat wordt gebruikt om een ​​nieuwe methode met een specifieke handtekening te declareren. De syntaxis voor een anonieme functie is:



delegeren ( parameter ) { uitdrukking }

Waarbij de parameter de invoer voor de functie is en de expressie de uitvoer van de functie is. Het volgende voorbeeld demonstreert het gebruik van een anonieme functie om de som van twee getallen te berekenen:

delegeren ( int A , int B ) { opbrengst A + B ; }

In dit voorbeeld neemt de functie Anoniem twee invoerparameters x en y en retourneert de som van f en g:

systeem gebruiken ;

klasse programma {

statisch leegte Voornaamst ( snaar [ ] argumenten ) {

Func < int , int , int > som = delegeren ( int F , int G ) { opbrengst F + G ; } ;

Troosten. Schrijf lijn ( som ( 2 , 3 ) ) ;

}

}

In dit voorbeeld definiëren we een Anonymous-functie die twee integer-invoerparameters x en y neemt en hun som retourneert. We declareren de somvariabele als een Func type, wat specificeert dat de functie twee integer-invoerparameters nodig heeft en een integer-waarde retourneert. We gebruiken het gedelegeerde sleutelwoord om de functie te definiëren, en dan noemen we het met de invoerwaarden van 2 en 3. De uitvoer zal 5 zijn.

Conclusie

Lambda-expressies en Anonymous-functies zijn krachtige concepten in C# waarmee ontwikkelaars beknopte, efficiënte en gemakkelijk leesbare code kunnen schrijven. Lambda-expressies worden gebruikt om inline-methoden te definiëren zonder dat een afzonderlijke methode hoeft te worden gedeclareerd, terwijl Anonieme functies worden gebruikt om inline-functies te definiëren en aan te roepen zonder dat een afzonderlijke methode hoeft te worden gedelegeerd (int x, int y) { return x + y; }. Beide concepten zijn essentiële hulpmiddelen voor elke C#-ontwikkelaar die efficiënte en onderhoudbare code wil schrijven.