PDA

View Full Version : سوال: بازگشت به ابتدای زیربرنامه



shadidayan
جمعه 22 شهریور 1387, 03:00 صبح
با سلام
در برنامهif دارم که در صورت درست بودن آن به اول متدم برگردد.متد هم
button1_Click هست برای این کار چه دستوری باید بنویسم.نمی خواهم از این متد خارج شود ،می خواهم به اول همین زیر برنامه برگردد.

رضا عربلو
جمعه 22 شهریور 1387, 05:46 صبح
do
..دستورات....
while (..شرط....);

h.jaza
جمعه 22 شهریور 1387, 14:25 عصر
عربلو (http://barnamenevis.org/forum/member.php?u=4936) جان فکر کنم منظورشون این بود که مثلا ما وست یه رویداد هستیم، حالا اگر یه شرطی درست بود برگرد به اول همین رویداد یعنی:



private void button1_Click(object sender, EventArgs e)
{
...
if(The Condition)
{
...
void button1_Click(null, null);
}
...
}

رضا عربلو
جمعه 22 شهریور 1387, 14:34 عصر
همون do..while را استفاده کن. هر کجا که خواستی به اول رویداد بر گردی continue از استفاده کن.
البته استفاده از button1_Click(null, null); باعث نمی شود که کنترل برنامه به ابتدای رویداد برود در واقع شما با این کار یکبار دیگر رویداد را فرا می خوانید که پس از پایان پذیرفتن آن اجرای قبلی همچنان از جایی که رویداد فراخوانده شده است ادامه می یابد.

h.jaza
جمعه 22 شهریور 1387, 14:43 عصر
همون do..while را استفاده کن. هر کجا که خواستی به اول رویداد بر گردی continue از استفاده کن.
البته استفاده از button1_Click(null, null); باعث نمی شود که کنترل برنامه به ابتدای رویداد برود در واقع شما با این کار یکبار دیگر رویداد را فرا می خوانید که پس از پایان پذیرفتن آن اجرای قبلی همچنان از جایی که رویداد فراخوانده شده است ادامه می یابد.
حرف شما کاملا درسته.

اونی که من از حرف shadidayan فهمیدم این بود که میخواد به اول این رویداد برگرده که در نتیجش این کدو نوشتم ولی اگر میخواد لوپ انجام بده، همون حرف شما کاملا درست هستش. چرا که اینجوری سوال به اصل مفهوم لوپ برمیگرده.

Xcalivorse
جمعه 22 شهریور 1387, 15:02 عصر
چرا از Goto استفاده نمیکنی ؟

Amir Oveisi
شنبه 23 شهریور 1387, 00:13 صبح
چرا از Goto استفاده نمیکنی ؟

این دستور در اصول برنامه نویسی شی گرا هیچ جایی نداره دوست عزیز و در صورت استفاده از اون کل ساختار شی گرایی برنامه به هم خواهد ریخت.

رضا عربلو
شنبه 23 شهریور 1387, 00:36 صبح
دستورات شرطی و کنترلی نظیر if و while و do..while در خودشان GOTO مستطرر است. برای مثال do..while معادل if (..) GOTO می باشد. هرچند استفاده از دستورات GOTO چندان پیشنهاد نمی شود چون فهمیدن منطق برنامه را مشکل تر می کند. ولی استفاده محدود از آن اشکالی ندارد.

h.jaza
شنبه 23 شهریور 1387, 00:44 صبح
دستورات شرطی و کنترلی نظیر if و while و do..while در خودشان GOTO مستطرر است. برای مثال do..while معادل if (..) GOTO می باشد. هرچند استفاده از دستورات GOTO چندان پیشنهاد نمی شود چون فهمیدن منطق برنامه را مشکل تر می کند. ولی استفاده محدود از آن اشکالی ندارد.
من به شدت با این حرف شما مخالفم.

به نظر من، استفاده از دستور GoTo یعنی مرگ یک برنامه نویس. یعنی همون امضای خودتون.

این حرف یعنی اینکه ما بیایم و مثل زبان خیلی سطح پایینی به نام Assembly که از دستور GoTo استفاده میکنه (به کرات)، بیام و تو یه زبان خیلی سطح بالایی به نام #C هر چند به ندرت، استفاده کنیم. یعنی یه برنامه نویس اینقدر به پیسی باید بیفته که بخواد از GoTo توی کد سی شارپش استفاده کنه؟

فکر میکنم همچین برنامه نویسی، باید فکر ادامه ی کد نویسی رو از ذهنش بیرون کنه.

jaza_sa
شنبه 23 شهریور 1387, 01:37 صبح
من به شدت با این حرف شما مخالفم.

به نظر من، استفاده از دستور GoTo یعنی مرگ یک برنامه نویس. یعنی همون امضای خودتون.

این حرف یعنی اینکه ما بیایم و مثل زبان خیلی سطح پایینی به نام Assembly که از دستور GoTo استفاده میکنه (به کرات)، بیام و تو یه زبان خیلی سطح بالایی به نام #C هر چند به ندرت، استفاده کنیم. یعنی یه برنامه نویس اینقدر به پیسی باید بیفته که بخواد از GoTo توی کد سی شارپش استفاده کنه؟

فکر میکنم همچین برنامه نویسی، باید فکر ادامه ی کد نویسی رو از ذهنش بیرون کنه.
استفاده از GoTo یک قابلیته ،
درسته که استفاده ازش خوب نیست
مفاهیم شیء گرایی رو زیر سوال میبره
فهم کد رو دشوار میکنه
میشه از راههای دیگه ای هم ، کار مورد نظر رو انجام داد
و ...
ولی بهتره منطقی باشیم و تعصب ها رو دور بریزیم

موفق باشید

Amir Oveisi
شنبه 23 شهریور 1387, 01:49 صبح
درسته که استفاده ازش خوب نیست
مفاهیم شیء گرایی رو زیر سوال میبره

همین کافیه!
وقتی هر کدی رو بدون استفاده از GOTO‌ میشه نوشت پس هیچ احتیاجی به استفاده از اون نسیت.

sinpin
شنبه 23 شهریور 1387, 11:13 صبح
در برنامهif دارم که در صورت درست بودن آن به اول متدم برگردد.متد هم button1_Click هست برای این کار چه دستوری باید بنویسم.نمی خواهم از این متد خارج شود ،می خواهم به اول همین زیر برنامه برگردد.

1- نيازتون دقيقا چي هست ؟ در مورد برنامه تون بيشتر توضيح بديد.
2- اين راه حل ها ضمن ناخوانا كردن كد مشكلات ديگري هم دارد. فرض كنيد كه پس از اينكه شرط برقرار شد، به هيچ طريقي false نشود. پس دچار يك حلقه بي نهايت خواهيد شد.
و ...