Шта је Ламбда експресија у Ц#
Ламбда израз је кратак, концизан начин да се дефинише метода инлине, без потребе да се декларише посебан метод. То је у суштини анонимни метод који се може доделити променљивој или користити као параметар, Ламбда изрази у Ц# су представљени оператором „=>“, који се чита као оператор „иде на“:
Синтакса за Ламбда израз је:
( параметар ) => израз
Где је параметар улаз функције, а израз је излаз функције. Следећи пример показује употребу Ламбда израза за израчунавање квадрата броја:
инт квадрат = ( Икс ) => Икс * Икс ;
У овом примеру, Ламбда израз узима улазни параметар к и враћа квадрат к. Резултат Ламбда израза се додељује квадрату променљиве и ево целог кода за овај пример:
користећи Систем ;
разред Програм {
статична празнина Главни ( низ [ ] аргс ) {
Фунц < инт , инт > квадрат = Икс => Икс * Икс ;
Конзола. ВритеЛине ( квадрат ( 6 ) ) ;
}
}
У овом примеру дефинишемо Ламбда израз који узима целобројни улазни параметар к и враћа његов квадрат. Тип Фунц<инт, инт> дефинише да Ламбда израз узима целобројни улазни параметар и враћа целобројну вредност. Додељујемо овај Ламбда израз квадратној променљивој, а затим га позивамо са улазном вредношћу 6 и излаз ће бити 36.
Шта је анонимна функција Ц#
Анонимна функција је функција која нема име и представља неку врсту Ламбда израза који се дефинише и зове инлине, без декларисања посебне методе. Анонимне функције у Ц# су представљене кључном речи „делегат“, која се користи за декларисање нове методе са специфичним потписом, синтакса за анонимну функцију је:
делегат ( параметар ) { израз }
Где је параметар улаз функције, а израз је излаз функције. Следећи пример показује употребу анонимне функције за израчунавање збира два броја:
делегат ( инт а , инт б ) { повратак а + б ; }У овом примеру, функција Анонимоус узима два улазна параметра к и и и враћа збир ф и г:
користећи Систем ;разред Програм {
статична празнина Главни ( низ [ ] аргс ) {
Фунц < инт , инт , инт > сум = делегат ( инт ф , инт г ) { повратак ф + г ; } ;
Конзола. ВритеЛине ( сум ( 2 , 3 ) ) ;
}
}
У овом примеру дефинишемо Анонимоус функцију која узима два цела улазна параметра к и и и враћа њихов збир. Променљиву сум декларишемо као тип Фунц<инт, инт, инт>, који специфицира да функција узима два целобројна улазна параметра и враћа целобројну вредност. Користимо кључну реч делегате да дефинишемо функцију, а затим је позивамо са улазним вредностима 2 и 3. Излаз ће бити 5.
Закључак
Ламбда изрази и анонимне функције су моћни концепти у Ц#-у који омогућавају програмерима да пишу концизан, ефикасан и лак за читање код. Ламбда изрази се користе за дефинисање инлине метода без потребе да се декларише посебан метод, док се Анонимне функције користе за дефинисање и позивање инлине функција без потребе да се декларише посебан делегат метода (инт к, инт и) { ретурн к + и; }. Оба концепта су суштински алати за сваког Ц# програмера који жели да напише ефикасан код који се може одржавати.