PDA

نسخه کامل مشاهده نسخه کامل : اشکال در استفاده از foreach



موهبت-ع
03-05-2009, 18:50
سلام من برنامه ای نوشتم با استفاده از arraylistو برای اینکه بتونم به عناصر داخل لیستم دسترسی داشته باشم و اون اطلاعاتی رو که می خواستم رو به دست بیارم از foreach استفاده کردم اما روی foreach به من این خطا رو می ده اگه می شه راهنماییم کنید که چرا این خطا رو می ده وبرای برطرف کردن این خطا چی کار باید بکنم؟ ممنون foreach statement can not operate on variables of type 'bak_file.person' because 'bank_file.person' does not contain a definition for 'GetEnumerator&amp'; bank_file اسم برنامم و person یک کلاس معمولی با خاصیت ها و متد سازنده است.

kiuhnmgtrdcv
03-05-2009, 20:17
برای اجرای دستور foreach روی کلاس هایی که خودتون ساختید باید یک متد iterator توسط کلمه yield درست کنید وگرنه با همون for معمولی کنار بیاین


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

موهبت-ع
04-05-2009, 08:23
برای اجرای دستور foreach روی کلاس هایی که خودتون ساختید باید یک متد iterator توسط کلمه yield درست کنید وگرنه با همون for معمولی کنار بیاین


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

من تازه برنامه نویسی رو شروع کردم می شه بیشتر توضیح بدید که متد iterator چی هست و کلمه yield چی کار میکنه؟ ممنون

kiuhnmgtrdcv
04-05-2009, 12:12
اگر میخواهید کلاس هایی که خودتان درست میکنید بتوانند از foreach استفاده کنند باید براشون شی دوم foreach تعریف کنیم
car c in carArr
تا اینجا سی شارپ میفهمه که شی c چی هست ولی منظور از carArr نمیفهمه برای همین باید برای کلاس car یه کلاس کالکشن هم درست کنیم تا بفهمه که تو مجموعه ای از car ها iterate کنه چون اگر carArr از نوع کلاس car تعریف کنید فقط یه ماشین داریم و مجموعه ای از ماشین ها رو نداریم
برای همین کلاس carArrClass تعریف میکنیم تا مجموعه ای از car ها داشته باشیم

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
حالا تو مثال بالا میتونیم از کلمه yield هم توی IEnumerator استفاده کنیم (روش دوم)


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید