IOPanel

חזור   IOPanel > דבר חופשי > תוכנה ומערכות הפעלה > תיכנות
עמוד ראשי הירשם חיפוש הודעות מהיום סמן פורומים כנקראו

תיכנות פורום בנושאי תיכנות , פיתוח אתרים , שפות תיכנות , אפליקציות סלולר וטאבלטים.

תוכנה ומערכות הפעלה : תיכנות

מחפש הסבר הגיוני לשימוש ב delegates ב #C

עברתי על אינסוף סרטוני הסברה, מאמרים, ספרים בכולם - לא הצלחתי למצוא הסבר הגיוני לשימוש בdelegates שיתן לי יתרון על ...
תגובה
 
קישור חוזר הגדרות אשכול אפשרויות הצגת נושא
ישן 28-11-14, 21:31   #1 (קישור ישיר)
IO Artist
 
סמל האישי של Almog Design
 
תאריך הצטרפות: May 2007
הודעות: 3,461
ברירת מחדל מחפש הסבר הגיוני לשימוש ב delegates ב #C

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

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

ההסבר של 'האפשרות שהתוכנית תוכל לקרוא לפונקציה
מסויימת בזמן ריצה מבלי שתדע מי היא ומה היא עושה' עדיין לא מובן לי לצערי.
__________________



{(בתקופת לימודי תואר ראשון)- (פעילות מתונה בפורום)}=limx→x0






ערוץ הפייסבוק הרשמי של 'deza, נשמח אם תבקרו:
http://www.facebook.com/dezacompany




4790K @ 4.0Ghz | Z97X-GAMING 3 | 16GB DDR3 | 970 GTX G1 GAMING | Razer BlackWidow
Almog Design לא מחובר   הגב עם ציטוט
ישן 29-11-14, 8:27   #2 (קישור ישיר)
IO Member
 
תאריך הצטרפות: Oct 2011
הודעות: 286
ברירת מחדל

אין סיבה להשתמש ב DELEGATE במקום שאתה יכול להשתמש בקריאה ישירה לפונ' וזוהי לא מטרתו.
חשוב למשל על מקרה שבו להגדיר עכשיו EVENT שה-HANDLER שלו הוא סוג מסוים של פונ', כיצד תעשה זאת עם פונ' ישירה?
מעבר לזה, אתה עכשיו רוצה להגדיר פונ' אחרת שמקבלת פונ' כפרמטר ומפעילה אותה בנסיבות מסויימות - כיצד תעשה זאת עם קריאה ישירה לפונ'?

מה שאני מנסה להגיד שעבודה ישירה עם פונ' ושימוש ב DELEGATES הם שני דברים שונים שעושים דברים שונים.
DELEGATE הוא מושג שלמפתחים צעירים קשה לתפוס אבל הוא מושג חשוב מאוד. מציע לך להמשיך לקרוא בנושא ו"ללכלך" קצת את הידיים. ככל שתשתמש בזה יותר זה יהיה לך אינטואיטיבי יותר.
תסתכל בעיקר איך DELEGATE בנוי, את הירושה שלו, מה הוא מכיל וכו'...
נ.ב -משהו חשוב נוסף שהרבה אנשים לא מודעים אליו הוא ש-DELEGATE בודד יכול להכיל REFERENCES לפונ' רבות ולא לפונ' בודדת.
ofir_bl לא מחובר   הגב עם ציטוט
ישן 29-11-14, 17:29   #3 (קישור ישיר)
IO Artist
 
סמל האישי של Almog Design
 
תאריך הצטרפות: May 2007
הודעות: 3,461
ברירת מחדל

אופיר תודה רבה על ההשקעה.

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



{(בתקופת לימודי תואר ראשון)- (פעילות מתונה בפורום)}=limx→x0






ערוץ הפייסבוק הרשמי של 'deza, נשמח אם תבקרו:
http://www.facebook.com/dezacompany




4790K @ 4.0Ghz | Z97X-GAMING 3 | 16GB DDR3 | 970 GTX G1 GAMING | Razer BlackWidow
Almog Design לא מחובר   הגב עם ציטוט
ישן 29-11-14, 18:04   #4 (קישור ישיר)
IO Member
 
תאריך הצטרפות: Oct 2011
הודעות: 286
ברירת מחדל

אנסה לתת לך דוגמה:
נניח אתה מפתח רכיב UI כלשהו, לצורך העניין אתה צריך לכתוב איזשהו TOOLBAR שמכיל כפתורים של Save, Cancel . אתה רוצה לכתוב זאת בצורה גנרית ככל האפשר שיהיה אפשר להשתמש בזה באפליקציות אחרות \ שתוכל להשתמש בו מספר פעמים באפליקציה שלך בלי להכפיל קוד.
כעת אתה צריך לממש את הפונ' של הכפתור SAVE אבל כיצד תעשה זאת? SAVE במקום מסוים באפליקציה אמור לבצע שמירה של רשומה ב-DB ובמקום אחר באפליקציה כפתור ה-SAVE בכלל שומר תמונה בדיסק הקשיח אז איך תדע מה המימוש הנדרש? במצב כזה אתה משאיר את המימוש בעצם לצרכן של הסרגל שלך - הרי הוא זה שמשתמש בו והוא יודע במדיוק מה SAVE אמור לעשות בהקשר שלו.
אז איך עושים זאת? אז משתמשים ב-EVENT או COMMAND שבעזרתם אתה בעצם מודיע למשתמש "כפתור ה-SAVE נלחץ - כעת תריץ את קוד השמירה שלך".

איך בדיוק ה-COMMAND או ה-EVENT עובדים? הם מכילים DELEGATE עם חתימה מוגדרת מראש (נובע מהגדרת ה-DELEGATE) וברגע שכפתור ה-SAVE נלחץ, כל פונ' המוצבעות ע"י ה-DELEGATE (את הפונ' כמובן המשתמש מספק) מופעלות.

כעת נסה לחשוב על המקרה שנתתי לך - האם היית יכול לממשו כקריאה ישירה לפונ'?

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


הגדרות אשכול
אפשרויות הצגת נושא

חוקי משלוח הודעות
אתה לא יכול לשלוח הודעות חדשות
אתה לא יכול לשלוח תגובות
הינך לא יכול לצרף קבצים להודעותיך
אתה לא יכול לערוך את הודעותיך

vB code הינו פועל
סמיילים הינו פועל
קוד [IMG] הינו פועל
קוד HTML הינו כבוי
Trackbacksהינו פועל
Pingbacks הינו פועל
Refbacks הינו פועל

נושאים דומים
אשכול מפרסם האשכול פורום תגובות הודעה אחרונה
מחפש מחשב נייד לשימוש יומי alioop מבוקש 0 14-04-13 17:02
מחפש אוזניות(OVER-EAR) לשימוש ביתי עד 300 omri09 כרטיסי קול , רמקולים ומערכות שמע 2 08-12-12 21:45
מחפש סמארטפון לשימוש בסיסי jossefoN סלולר וגאדג'טים 3 02-11-12 19:35
מחפש מחשב לשימוש פשוט.. a_l2402 לא אקטואלי 0 27-06-11 1:10
מחפש הסבר/מידע על Overvoltage למנועים חשמלים. RTR דיבורים על הא ודא 0 26-05-08 23:19


כל הזמנים הם GMT +3. השעה כרגע היא 2:21.





מופעל על ידי: vBulletin
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO
IOPanel.net © כל הזכויות שמורות