نمایش نتایج 1 تا 2 از 2

نام تاپیک: منطق کاری foreach در کلاسی که IEnumerable, IEnumerator را پیاده سازی میکند

  1. #1
    کاربر دائمی آواتار amirjalili
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    هر جایی که کنجکاویم و نیاز به دانستنم رو تحریک کنه
    پست
    792

    منطق کاری foreach در کلاسی که IEnumerable, IEnumerator را پیاده سازی میکند

    با سلام خدمت دوستان.
    من منطق foreach رو در کد زیر نمیفهمم. کلاس ما IEnumerable, IEnumerator رو پیاده سازی کرده و متد های movenext , getenumrator و مشخصه Current رو پیاده کرده. حالا میخوام ببینیم کد زیر هیچ کدوم از متد های ذکر شده رو فراخوانی نکرده و فقط کاری که انجام میدن رو پیاده کرده یعنی متد ها اجرا نشده. movenext اجرا نشده و همینطور بقیه . اما foreach به عناصر دسترسی پیدا میکنه. چطوری؟


    static void Main()
    {
    Rainbow MyRainbow = new Rainbow();
    foreach (string ColorName in MyRainbow)
    {
    Console.WriteLine(ColorName);
    //Console.WriteLine((int)season.bahar * (int)season.tabestan);
    }
    Console.ReadLine();
    }
    }

    class Rainbow : IEnumerable, IEnumerator
    {
    private short IteratorIndex = -1;
    public IEnumerator GetEnumerator()
    {
    return this;
    }
    public object Current
    {
    get
    {
    switch (IteratorIndex)
    {
    case 0:
    case 1:
    return "Orange";
    case 2:
    return "Yellow";
    case 3:
    return "Green";
    case 4:
    return "Blue";
    case 5:
    return "Indigo";
    case 6:
    return "Violet";
    default:
    return "*** ERROR ***";
    }
    }
    }
    public bool MoveNext()
    {
    IteratorIndex++;
    if (IteratorIndex == 7)
    {
    return false;
    }
    else
    {
    return true;
    }
    }
    public void Reset()
    {
    IteratorIndex = -1;
    }
    }

  2. #2
    کاربر دائمی آواتار amirjalili
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    هر جایی که کنجکاویم و نیاز به دانستنم رو تحریک کنه
    پست
    792

    نقل قول: منطق کاری foreach در کلاسی که IEnumerable, IEnumerator را پیاده سازی میکند

    به جهت بالا آمدن پست

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •