מהו ביטוי למבדה ב-C#
ביטוי למבדה הוא דרך קצרה ותמציתית להגדיר שיטה בשורה, ללא צורך להכריז על שיטה נפרדת. זוהי בעצם שיטה אנונימית שניתן להקצות למשתנה או להשתמש בה כפרמטר, ביטויי Lambda ב-C# מיוצגים על ידי האופרטור '=>', הנקרא כאופרטור 'הולך אל':
התחביר לביטוי למבדה הוא:
( פָּרָמֶטֶר ) => ביטוי
כאשר הפרמטר הוא הקלט לפונקציה, והביטוי הוא הפלט של הפונקציה. הדוגמה הבאה מדגימה את השימוש בביטוי למבדה לחישוב הריבוע של מספר:
int כיכר = ( איקס ) => איקס * איקס ;
בדוגמה זו, ביטוי Lambda לוקח פרמטר קלט x ומחזיר את הריבוע של x. התוצאה של ביטוי Lambda מוקצית לריבוע המשתנה והנה הקוד המלא עבור דוגמה זו:
באמצעות System ;
תוכנית הכיתה {
סטָטִי בָּטֵל רָאשִׁי ( חוּט [ ] args ) {
Func < int , int > כיכר = איקס => איקס * איקס ;
לְנַחֵם. WriteLine ( כיכר ( 6 ) ) ;
}
}
בדוגמה זו, אנו מגדירים ביטוי Lambda שלוקח פרמטר קלט של מספר שלם x ומחזיר את הריבוע שלו. הסוג Func
מהי פונקציה אנונימית C#
הפונקציה האנונימית היא פונקציה שאין לה שם והיא מעין ביטוי למבדה המוגדר ונקרא inline, מבלי להכריז על שיטה נפרדת. פונקציות אנונימיות ב-C# מיוצגות על ידי מילת המפתח 'נציג', המשמשת להכרזה על שיטה חדשה עם חתימה ספציפית, התחביר של פונקציה אנונימית הוא:
נָצִיג ( פָּרָמֶטֶר ) { ביטוי }
כאשר הפרמטר הוא הקלט לפונקציה, והביטוי הוא הפלט של הפונקציה. הדוגמה הבאה מדגימה את השימוש בפונקציה אנונימית לחישוב סכום של שני מספרים:
נָצִיג ( int א , int ב ) { לַחֲזוֹר א + ב ; }בדוגמה זו, הפונקציה אנונימית לוקחת שני פרמטרי קלט x ו-y ומחזירה את הסכום של f ו-g:
באמצעות System ;תוכנית הכיתה {
סטָטִי בָּטֵל רָאשִׁי ( חוּט [ ] args ) {
Func < int , int , int > סְכוּם = נָצִיג ( int ו , int ז ) { לַחֲזוֹר ו + ז ; } ;
לְנַחֵם. WriteLine ( סְכוּם ( 2 , 3 ) ) ;
}
}
בדוגמה זו, אנו מגדירים פונקציה אנונימית שלוקחת שני פרמטרי קלט שלמים x ו-y ומחזירה את הסכום שלהם. אנו מכריזים על משתנה הסכום כסוג Func
סיכום
ביטויי Lambda ופונקציות אנונימיות הם מושגים רבי עוצמה ב-C# המאפשרים למפתחים לכתוב קוד תמציתי, יעיל וקל לקריאה. ביטויי Lambda משמשים להגדרת שיטות מוטבעות ללא צורך בהכרזה על שיטה נפרדת, בעוד שפונקציות אנונימיות משמשות להגדרה ולקריאת פונקציות מוטבעות ללא צורך להכריז על נציג מתודה נפרד (int x, int y) { return x + y; }. שני המושגים הם כלים חיוניים לכל מפתח C# המחפש לכתוב קוד יעיל וניתן לתחזוקה.