
RightToConsoleDelegate.write. המשתנה מייצג את הפונקציה, וקריאה דרכו מפעילה אותה.g, מופעלת בדיקה אם המספר הראשון גדול מהשני. אחרת מופעלת בדיקה אם הוא קטן ממנו.compare מקבלת שני מספרים ודלגייט, ומפעילה את הדלגייט על המספרים. הפונקציה compare לא משתנה גם כשמוסיפים בדיקות חדשות.הטקסט המלא של הדקות הראשונות בהרצאה «מצביע לפונקציה - Delegate (הסבר נוסף)» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם, שמי אבי והשיעור שאני עומד להעביר היום יהיה בנושא של דליגייט. אז אנחנו נלמד בשיעור הזה מה זה בעצם דליגייט ואיך אנחנו יוצרים דליגייט ואיך אנחנו משתמשים בו בקוד.
אז לפני שנבחר להתחיל להסביר מה זה דליגייט, בוא נתחיל מהפירוש של המילה דליגייט ודרך זה נוכל להבין בעצם מה זה דליגייט. אז דליגייט, הפירוש של זה למעשה מישהו שמייצג דבר כלשהו, כמו עורך דין שמייצג את הלקוח שלו.
אז דליגייט זה בעצם משתנה שאנחנו מצהירים עליו בקוד, כמו משתנה מסוג של אינט או מסוג של סטרינג או מסוג של בול. הוא משתנה מסוג מסוים שהמשתנה הזה בעצם מייצג מצביע לפונקציה.
המילה מצביע באנגלית זה פוינטר, זה מין סלנג כזה בסטאט-אפ התכנות, אבל למעשה הדליגייט, זה הוא בעצם מייצג פונקציה אוקיי אז בוא נראה איך זה קורה בקוד בעצם בוא ניצור פרויקט חדש נקרא לו פרויקט מיסוי של קונסול אפליקיישן נקרא לו delegate lesson ובואו ניצור עכשיו איזה פונקציה מסוימת שאנחנו
נרצה לקרוא לה תעתיק מחזירה void נקרא לה write והפונקציה הזאת תכתוב משהו נכתוב משהו לקונסול, right line, בואו נגיד שהיא תכתוב hi everybody, אוקיי?
עכשיו, כמו שאתם יודעים, אני יכול לקרוא לפונקציה הזאתי בצורה הזאתי ולהפעיל אותה. delegate מאפשר לנו לקרוא לפונקציה הזאת בצורה קצת אחרת.
אז בואו נראה איך אנחנו בכלל מצהירים על delegate, משתנה מסוג של delegate. אז נכתוב את הדבר הבא, תכף אני גם אסביר מה אני כתבתי. אז יצרתי פה משתנה ויש פה איזו מילה שנקראת delegate והמילה הזאת מופיעה בצבע כחול.
מילה שמופיעה בצבע כחול כפי שאתם יודעים זאת מילה שמורה שהיא חלק משפת התכנות. ויש פה עכשיו מין משהו שנראה כמו פונקציה או כמו קריאה לפונקציה שזה מאוד קשור למה שהמשתנה הזה מייצג.
אז מה שיצרתי פה זה למעשה משתנה שמייצג פונקציה מסוימת. איזה פונקציה הוא מייצג? הוא מייצג כל פונקציה שמחזירה ווייד, כלומר לא מחזירה שום דבר ולא מקבלת שום פרמטרים כמו הפונקציה שלידות right.
פונקציה right לא מחזירה כלום, מחזירה ווייד ולא מקבלת שום פרמטרים. עכשיו איך אני עכשיו מחבר בין ה-delegate לפונקציה הזאתי? אני עושה את הדבר הבא, יש לי delegate שקראתי לו right to console delegate, נקרא לזה del, אני עכשיו יוצר כן delegate למעשה הוא קלאס שאני יכול עכשיו,
אחרי שאני יצרתי אותו אני נותן לו בקונסטרקטור שלו פה אתם רואים אני נותן לו עכשיו משתנה שמייצג פונקציה הוא מקבל פה target שזה שם של הפונקציה שמחזירה void ולא מקבלת שום פרמטרים כמו שאתם רואים פה והפונקציה right היא עונה לקריטריונים האלה אם אני אכניס עכשיו לתוך המשתנה הזה את הפונקציה right אגרום לה שהיא תהיה זמינה
הייתי עם דאבלי גדולה אוקיי אז אני מעביר למשתנה הזה עכשיו שם של פונקציה אוקיי ועכשיו המשתנה הזה שיצרתי מסוג של דריגייט הוא למעשה מייצג את הפונקציה הזאתי אוקיי ואם אני ארצה עכשיו להפעיל את הפונקציה הזאתי אני אוכל לעשות את זה בצורה הבדל בדיוק כמו שאני עכשיו קורא לפונקציה right בצורה הזאתי אני פשוט
קורא לה בצורה הזאתי כי עכשיו המשתנה הזה יפעיל את הפונקציה הזאתי בוא נראה איך זה קורה אז עכשיו אני יוצר את המשתנה מסוג של delegate ובוא נשים פה breakpoint ובוא ניכנס לתוך הפונקציה אנחנו רואים שהפונקציה הזאת נקראת ועכשיו היא תכתוב משהו בוא נראה שהיא כתבה את זה היי רוואלי והיא יוצאת כמובן הקריאה לפונקציה
הזאת היא גם תקרא לפונקציה הזאת כמו שאנחנו נראה עכשיו וגם תכתוב אותו דבר נשאלת השאלה זאת קריאה לפונקציה וזאת קריאה לפונקציה רק שפה זה צורה אחרת אז בוא נראה איך אנחנו יכולים להשתמש ב delegate בצורה יותר חכמה עכשיו בוא נגיד בוא נמחק את הפונקציה הזאתי גם את כל מה שיש לנו פה בוא נגיד שאנחנו רוצים
לקבל מהמסך לקבל מהמשתמש שני מספרים ולהשוות ביניהם אז בוא נסיר פה על משתנה מסוג של סטרינג קונסול read line ואני רוצה עכשיו לקבל עכשיו את מה שהוא הכניס ולהמיר את זה למספר ככה אני ממיר את מה שהמשתמש הכניס כמו שאתם מודים ואני רוצה עכשיו לבצע את
אותו דבר על המספר השני שהוא יכניס בוא אני אנתיק את זה ואני אעשה פה