ABA


"אפשר בבקשה הסבר על Iterators?"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #14993 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 14993
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   14:37   12.10.08   
אל הפורום  
  אפשר בבקשה הסבר על Iterators?  
 
   היי חבר'ה =].
קראתי על Iterators, לא הבנתי בדיוק מה זה, למה משתמשי בזה, ואיך.

מישהו בבקשה יכול להסביר לי?


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  תגובה By-king 12.10.08 14:55 1
     תודה על התשובה אבל לא ממש הבנתי אותך... ronen333  12.10.08 17:49 2
         זה פשוט מאוד Assasin 13.10.08 10:47 3
             תודה רבה אחי על ההסבר המפורט =] ronen333  13.10.08 12:03 4
                 ח אופס זה אני הגבתי לך מהניק של אאסין שהייתי אצלו Sn00py  13.10.08 16:41 5
                     חח לא הבנתי פתאום מה הוא קשור DLN 13.10.08 17:11 7
                     חח תודה לירן =] ronen333  14.10.08 19:43 8
                         חח אני במרכז משגע את סער/שחר/וכו'. שאני אחזור :) Sn00py  15.10.08 12:56 10
                     בסוף הוא היה מקבל צל''ש בטעות Nesher  14.10.08 22:02 9
                         הו לא |: Sn00py  15.10.08 12:56 11
                         אני בעד :) Assasin 15.10.08 12:57 12
                 משמש בכל לולאה בשביל לעשות איטרציה... Sn00py  13.10.08 16:43 6

       
By-king לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.8.02
31427 הודעות, 1 פידבק
   14:55   12.10.08   
אל הפורום  
  1. תגובה  
בתגובה להודעה מספר 0
 
   נכון כמו שבללואות בשביל לעבור על מספרים אתה משתמש ב I? הוא כאילו מה שמקדם את הלולאה?
איטרטור זה כמו ה I של קלאסים...


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   17:49   12.10.08   
אל הפורום  
  2. תודה על התשובה אבל לא ממש הבנתי אותך...  
בתגובה להודעה מספר 1
 
   ערכתי לאחרונה בתאריך 12.10.08 בשעה 17:54 בברכה, ronen333
 
הנה הדוגמה מMSDN

public class DaysOfTheWeek : System.Collections.IEnumerable
{
string[] days = { "Sun", "Mon", "Tue", "Wed", "Thr", "Fri", "Sat" };

public System.Collections.IEnumerator GetEnumerator()
{
for (int i = 0; i < days.Length; i++)
{
yield return days[i];
}
}
}

class TestDaysOfTheWeek
{
static void Main()
{
// Create an instance of the collection class
DaysOfTheWeek week = new DaysOfTheWeek();

// Iterate with foreach
foreach (string day in week)
{
System.Console.Write(day + " ");
}
}
}


לפיה יש מחלקה DaysOfTheWeek שיורשת מהממשק IEnumerator כדי לחייב אותה ליישם את הפעולה GetEnumerator כדי שתוכל ליישם את המעבר בFOREACH.

עכשיו, הצלחתי רק להבין איך שהוא מMSDN שהמילה השמורה yield מאפשרת לחזור לפונקציה אחרי החזרת המידע(RETURN) אבל לא הבנתי גם למשל למה המילה הזאת 'ממירה' את המחרוזת לIEnumerator שאתה מתבקש להחזיר עם הפונקציה.
ומתי אני בעצם משתמש בה? מה היא בדיוק עושה?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Assasin

   10:47   13.10.08   
אל הפורום  
  3. זה פשוט מאוד  
בתגובה להודעה מספר 2
 
   נניח ואתה כותב מחלקת SuperArray, מערך משופר עם מלא תכונות.
אתה רוצה שיהיה אפשר לגשת לאיברים שלו sp, sp וכו'.. נכון?
בשביל זה בא העניין של indexers ו iterators. זה מאפשר לך להגיד לקומפיילר 'אפשר לעבור עלי בלולאות', ובשביל זה אתה יורש את הממשק IEnurmable.
בכל אופן, ה yield כמו שאמרת מאפשר לחזור לפונקציה גם עם RETURN(פשוט שומרת כתובת נוספת במחסנית, הסבר מעולה יש ב MSDN).
אין 'המרה' של הערך המוחזר ל IEnumerator כמו שכתבת, כל מה שזה עושה זה מאפשר להגיד לקומפיילר ש-מימשת- ממשק שמאפשר לרוץ על המחלקה שלך בצורה לולאתית, ושיאפשר פונקציות כמו foreach.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   12:03   13.10.08   
אל הפורום  
  4. תודה רבה אחי על ההסבר המפורט =]  
בתגובה להודעה מספר 3
 
  

חוץ מזה יהיה לי עוד שימוש לyield? או שזה פשוט נועד אך ורק לעבוד בהכנת FOREACH לאוסף שאני מכין?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Sn00py 
חבר מתאריך 1.8.02
2954 הודעות
   16:41   13.10.08   
אל הפורום  
  5. ח אופס זה אני הגבתי לך מהניק של אאסין שהייתי אצלו  
בתגובה להודעה מספר 4
 
  

\x6C\x65\x65\x74\x68\x61\x78\x30
\x72\x3A\x2D\x29
tresp4sser


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
DLN
חבר מתאריך 20.4.07
15884 הודעות
   17:11   13.10.08   
אל הפורום  
  7. חח לא הבנתי פתאום מה הוא קשור  
בתגובה להודעה מספר 5
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   19:43   14.10.08   
אל הפורום  
  8. חח תודה לירן =]  
בתגובה להודעה מספר 5
 
   מה עם התר'דס ;) ?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Sn00py 
חבר מתאריך 1.8.02
2954 הודעות
   12:56   15.10.08   
אל הפורום  
  10. חח אני במרכז משגע את סער/שחר/וכו'. שאני אחזור :)  
בתגובה להודעה מספר 8
 
  

\x6C\x65\x65\x74\x68\x61\x78\x30
\x72\x3A\x2D\x29
tresp4sser


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Nesher  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 2.7.02
2 הודעות, 24 פידבק
   22:02   14.10.08   
אל הפורום  
  9. בסוף הוא היה מקבל צל''ש בטעות  
בתגובה להודעה מספר 5
 


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Sn00py 
חבר מתאריך 1.8.02
2954 הודעות
   12:56   15.10.08   
אל הפורום  
  11. הו לא |:  
בתגובה להודעה מספר 9
 
  

\x6C\x65\x65\x74\x68\x61\x78\x30
\x72\x3A\x2D\x29
tresp4sser


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Assasin

   12:57   15.10.08   
אל הפורום  
  12. אני בעד :)  
בתגובה להודעה מספר 9
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Sn00py 
חבר מתאריך 1.8.02
2954 הודעות
   16:43   13.10.08   
אל הפורום  
  6. משמש בכל לולאה בשביל לעשות איטרציה...  
בתגובה להודעה מספר 4
 
   אתה יכול לעשות גם פונקציה שמחזירה אנומריטור ולעשות בתוכה לולאת WHILE עם YEILD...

\x6C\x65\x65\x74\x68\x61\x78\x30
\x72\x3A\x2D\x29
tresp4sser


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net