כיצד להשתמש בביטויי למבדה ב- C #

ביטויים למבדה הוצגו לראשונה ב- .NET 3.5, במקביל לכך שאילתת השילוב המשולב (LINQ) הועמדה לרשותו. ביטויים למבדה הם כמו שיטות אנונימיות אך עם הרבה יותר גמישות. בעת שימוש בביטוי למבדה, אינך צריך לציין את סוג הקלט. לפיכך, ביטוי למבדה מספק דרך קצרה ונקייה יותר לייצג שיטות אנונימיות.

במאמר זה נבחן כיצד נוכל להשתמש בביטויי למבדה ב- C #. כדי לעבוד עם דוגמאות הקוד המופיעות במאמר זה, עליך להתקין במערכת Visual Studio 2019 שלך. אם עדיין אין לך עותק, תוכל להוריד את Visual Studio 2019 כאן. 

צור פרויקט יישום קונסולה ב- Visual Studio

ראשית, בואו ניצור פרויקט יישומי קונסולת .NET Core ב- Visual Studio. בהנחה ש- Visual Studio 2019 מותקן במערכת שלך, בצע את הצעדים המתוארים להלן כדי ליצור פרויקט יישום חדש של מסוף ה- NET Core ב- Visual Studio.

  1. הפעל את Visual Studio IDE.
  2. לחץ על "צור פרויקט חדש".
  3. בחלון "צור פרויקט חדש" בחר "יישום קונסולה (.NET Core)" מרשימת התבניות המוצגות.
  4. הקש "הבא. 
  5. בחלון "הגדר את הפרויקט החדש שלך" שמוצג הבא, ציין את השם והמיקום של הפרויקט החדש.
  6. לחץ על צור.

ביצוע השלבים הבאים אמור לגרום לפרויקט יישום קונסולת .NET Core חדש ב- Visual Studio 2019. נשתמש בפרויקט זה כדי לעבוד עם ביטויי C # lambda בסעיפים הבאים של מאמר זה.

אנטומיה של ביטוי למבדה

בעיקרו של דבר ביטוי למבדה הוא שיטה שאין בה הצהרה. במילים אחרות, ביטוי למבדה הוא שיטה שאין לה מפרט גישה או שם. ניתן לחלק ביטוי למבדה לשני חלקים - החלק השמאלי והחלק הימני. החלק השמאלי משמש לקלט, והחלק הימני משמש לכתיבת ביטויים.

הנה התחביר לשימוש בביטויי למבדה ב- C #.

(פרמטרי קלט) => בלוק ביטוי או משפט

אתה יכול לקבל שני סוגים של ביטויים למבדה, ביטוי למבדה ואמירה למבדה. ביטוי למבדה מורכב מקלט בצד שמאל וביטוי בצד ימין, כפי שמוצג להלן.

קלט => ביטוי;

משפט למבדה מורכב מקלט בצד שמאל ומערכת הצהרות בצד ימין, כמוצג להלן.

input => {הצהרות};

דוגמאות לביטוי למבדה ב- C #

כתיבת ביטוי למבדה היא פשוטה - אתה רק צריך להסיר את מילת המפתח הנציגה וסוג הפרמטר משיטה אנונימית. שקול את השיטה האנונימית הבאה המשתמשת במילת המפתח הנאצלת וכן בסוג פרמטר.

נציג (מחבר א) {להחזיר a.IsActive && a.NoOfBooksAuthored> 10; }

ניתן להמיר את המשפט לעיל לביטוי למבדה כפי שמוצג בקטע הקוד המופיע למטה.

(א) => {a.IsActive && a.NoOfBooksAuthored> 10; }

בהצהרה שלעיל aהוא הפרמטר והוא =>מפעיל הלמבה. ההצהרה הבאה היא הביטוי.

a.IsActive && a.NoOfBooksAuthored> 10;

הנה דוגמה נוספת לביטוי למבדה המציג את המספרים האי-זוגיים בין 1 ל -9 בחלון המסוף.

מספרים שלמים של רשימה = רשימה חדשה {1, 2, 3, 4, 5, 6, 7, 8, 9};

foreach (int num במספרים שלמים. Where (n => n% 2 == 1). ToList ())

{

  Console.WriteLine (num);

}

ביטויים למבדה עם ובלי פרמטרים

ביטויים למבדה יכולים להיות ללא פרמטר או להכיל פרמטר אחד או יותר. קטע הקוד הבא ממחיש ביטוי למבדה ללא פרמטרים.

() => Console.WriteLine ("זהו ביטוי למבדה ללא כל פרמטר");

לביטויים למבדה יכול להיות גם פרמטר אחד או יותר. קטע הקוד הבא ממחיש כיצד ניתן להעביר פרמטר אחד לביטוי למבדה.

(a, numberOfBooksAuthored) => a.NoOfBooksAuthored> = numberOfBooksAuthored;

ניתן גם לציין את סוג הפרמטר בביטוי למבדה, כפי שמוצג בקטע הקוד המופיע למטה.

(a, int numberOfBooksAuthored) => a.NoOfBooksAuthored> = numberOfBooksAuthored;

אתה יכול אפילו לציין משפטים מרובים בביטוי למבדה באמצעות סוגריים מתולתלים. זה מוצג בקטע הקוד הבא. 

(a, 10) =>

{

   Console.WriteLine ("זו דוגמה לביטוי למבדה

                      עם הצהרות מרובות ");

   להחזיר a.NoOfBooksAuthored> = 10;

}

הצהרת lambdas ב C #

משפט אמדה משתמש בתחביר זהה לבמבה ביטוי. ההבדל הוא שבמקום לקבל ביטוי מימין למפעיל, ההצהרה למבדה כוללת גוש קוד הכולל משפט אחד או יותר.

קטע הקוד הבא ממחיש כיצד תוכלו לנצל את הצהרת lambda כדי להציג את המספרים הזוגיים בין 1 ל 9 בחלון המסוף.

int [] מספרים שלמים = חדשים [] {1, 2, 3, 4, 5, 6, 7, 8, 9};

foreach (int i במספרים שלמים. Where (x =>

{

   אם (x% 2 == 0)

         לחזור אמיתי;

    להחזיר כוזב;

 }

 )))

Console.WriteLine (i);

ביטויים למבדה הם תכונה נהדרת ב- .NET ו-. Core Core המספקים דרך קצרה יותר לייצג שיטות אנונימיות. לביטויי למבדה יכולים להיות אפס פרמטרים או אחד או יותר. אתה יכול אפילו להקצות ביטויים למבדה לנציגי Func, Action או Predicate. במאמר עתידי כאן, נחקור תכונות אלה ואחרות של ביטויים למבדה. נבדוק גם כיצד נוכל לעבוד עם ביטויים למבדה ו- LINQ כמו גם למבדי אסינכרון.

כיצד לעשות יותר ב- C #:

  • מתי להשתמש בכיתה מופשטת לעומת ממשק ב- C #
  • כיצד לעבוד עם AutoMapper ב- C #
  • כיצד להשתמש בביטויי למבדה ב- C #
  • כיצד לעבוד עם נציגי Action, Func ו- Predicate ב- C #
  • כיצד לעבוד עם נציגים ב- C #
  • כיצד ליישם לוגר פשוט ב- C #
  • כיצד לעבוד עם תכונות ב- C #
  • כיצד לעבוד עם log4net ב- C #
  • כיצד ליישם את דפוס עיצוב המאגר ב- C #
  • כיצד לעבוד עם השתקפות ב- C #
  • כיצד לעבוד עם מערכת קבצים ב- C #
  • כיצד לבצע אתחול עצל ב- C #
  • כיצד לעבוד עם MSMQ ב- C #
  • כיצד לעבוד עם שיטות הרחבה ב- C #
  • איך לנו ביטויים למבדה ב- C #
  • מתי להשתמש במילת המפתח ההפכפכה ב- C #
  • כיצד להשתמש במילת המפתח תשואה ב- C #
  • כיצד ליישם פולימורפיזם ב- C #
  • כיצד לבנות מתזמן משימות משלך ב- C #
  • כיצד לעבוד עם RabbitMQ ב- C #
  • איך לעבוד עם ציצית ב C #
  • חקר שיטות וירטואליות ומופשטות ב- C #